Skip to content

Commit

Permalink
display communities list
Browse files Browse the repository at this point in the history
  • Loading branch information
Matthew committed Nov 21, 2024
1 parent e38df72 commit 27e925f
Show file tree
Hide file tree
Showing 12 changed files with 161 additions and 25 deletions.
2 changes: 2 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ dependencies {
implementation(libs.annotation)
implementation(libs.lifecycle.livedata.ktx)
implementation(libs.lifecycle.viewmodel.ktx)
implementation(libs.legacy.support.v4)
implementation(libs.recyclerview)
testImplementation(libs.junit)
androidTestImplementation(libs.ext.junit)
androidTestImplementation(libs.espresso.core)
Expand Down
30 changes: 30 additions & 0 deletions app/src/main/java/com/example/komodohub/AdminActivity.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,28 @@
package com.example.komodohub;

import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;

import com.example.komodohub.database.DatabaseAdapter;
import com.example.komodohub.models.StableArrayAdapter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class AdminActivity extends AppCompatActivity {
private DatabaseAdapter dbAdapter;

private TextView newCommunityName;
private ListView adminCommunityView;

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand All @@ -24,6 +35,9 @@ protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_admin_page);

newCommunityName = findViewById(R.id.createCommunityBox);
adminCommunityView = findViewById(R.id.adminCommunitiesView);

reloadList();
}

public void createNewCommunity(View view)
Expand All @@ -34,11 +48,27 @@ public void createNewCommunity(View view)

Toast t = Toast.makeText(this, "Successfully created new community", Toast.LENGTH_SHORT);
t.show();

reloadList();
}
catch (Exception e)
{
Toast t = Toast.makeText(this, "Failed to create a new community", Toast.LENGTH_SHORT);
t.show();
}
}

private void reloadList()
{
var communities = dbAdapter.getAllCommunities();

var list = new ArrayList<String>();
for (int i = 0; i < communities.size(); ++i) {
list.add(communities.get(i).Name);
}
final StableArrayAdapter adapter = new StableArrayAdapter(this,
android.R.layout.simple_list_item_1, list);
adminCommunityView.setAdapter(adapter);
}

}
22 changes: 3 additions & 19 deletions app/src/main/java/com/example/komodohub/LoginActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,15 @@

import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;

import com.example.komodohub.databinding.ActivityMainBinding;
import com.google.android.material.snackbar.Snackbar;

import org.w3c.dom.Text;

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.util.Base64;

import com.example.komodohub.database.DatabaseAdapter;

import java.util.Objects;

public class LoginActivity extends AppCompatActivity {
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/java/com/example/komodohub/MenuActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;

import com.example.komodohub.database.DatabaseAdapter;

public class MenuActivity extends AppCompatActivity {
private DatabaseAdapter dbAdapter;

Expand Down
2 changes: 2 additions & 0 deletions app/src/main/java/com/example/komodohub/ProfileActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;

import com.example.komodohub.database.DatabaseAdapter;

public class ProfileActivity extends AppCompatActivity {
private DatabaseAdapter dbAdapter;

Expand Down
5 changes: 1 addition & 4 deletions app/src/main/java/com/example/komodohub/SearchActivity.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
package com.example.komodohub;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;

import java.util.Objects;
import com.example.komodohub.database.DatabaseAdapter;

public class SearchActivity extends AppCompatActivity {
private DatabaseAdapter dbAdapter;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.komodohub;
package com.example.komodohub.database;

import android.annotation.SuppressLint;
import android.content.ContentValues;
Expand Down Expand Up @@ -87,7 +87,7 @@ public ArrayList<Community> getAllCommunities()
{
SQLiteDatabase db = dbHelper.getWritableDatabase();

Cursor c = db.rawQuery("SELECT * FROM Community", null);
Cursor c = db.rawQuery("SELECT * FROM Communities", null);
c.moveToFirst();

ArrayList<Community> communities = new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.example.komodohub.models;

import android.content.Context;
import android.widget.ArrayAdapter;

import java.util.HashMap;
import java.util.List;

public class StableArrayAdapter extends ArrayAdapter<String> {

HashMap<String, Integer> mIdMap = new HashMap<String, Integer>();

public StableArrayAdapter(Context context, int textViewResourceId,
List<String> objects) {
super(context, textViewResourceId, objects);
for (int i = 0; i < objects.size(); ++i) {
mIdMap.put(objects.get(i), i);
}
}

@Override
public long getItemId(int position) {
String item = getItem(position);
return mIdMap.get(item);
}

@Override
public boolean hasStableIds() {
return true;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package com.example.komodohub.placeholder;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
* Helper class for providing sample content for user interfaces created by
* Android template wizards.
* <p>
* TODO: Replace all uses of this class before publishing your app.
*/
public class PlaceholderContent {

/**
* An array of sample (placeholder) items.
*/
public static final List<PlaceholderItem> ITEMS = new ArrayList<PlaceholderItem>();

/**
* A map of sample (placeholder) items, by ID.
*/
public static final Map<String, PlaceholderItem> ITEM_MAP = new HashMap<String, PlaceholderItem>();

private static final int COUNT = 25;

static {
// Add some sample items.
for (int i = 1; i <= COUNT; i++) {
addItem(createPlaceholderItem(i));
}
}

private static void addItem(PlaceholderItem item) {
ITEMS.add(item);
ITEM_MAP.put(item.id, item);
}

private static PlaceholderItem createPlaceholderItem(int position) {
return new PlaceholderItem(String.valueOf(position), "Item " + position, makeDetails(position));
}

private static String makeDetails(int position) {
StringBuilder builder = new StringBuilder();
builder.append("Details about Item: ").append(position);
for (int i = 0; i < position; i++) {
builder.append("\nMore details information here.");
}
return builder.toString();
}

/**
* A placeholder item representing a piece of content.
*/
public static class PlaceholderItem {
public final String id;
public final String content;
public final String details;

public PlaceholderItem(String id, String content, String details) {
this.id = id;
this.content = content;
this.details = details;
}

@Override
public String toString() {
return content;
}
}
}
10 changes: 10 additions & 0 deletions app/src/main/res/layout/activity_admin_page.xml
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,14 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<ListView
android:id="@+id/adminCommunitiesView"
android:layout_width="351dp"
android:layout_height="456dp"
android:layout_marginTop="279dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
1 change: 1 addition & 0 deletions app/src/main/res/values/dimens.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="text_margin">16dp</dimen>
</resources>
4 changes: 4 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ navigationUi = "2.6.0"
annotation = "1.6.0"
lifecycleLivedataKtx = "2.6.1"
lifecycleViewmodelKtx = "2.6.1"
legacySupportV4 = "1.0.0"
recyclerview = "1.3.0"

[libraries]
junit = { group = "junit", name = "junit", version.ref = "junit" }
Expand All @@ -24,6 +26,8 @@ navigation-ui = { group = "androidx.navigation", name = "navigation-ui", version
annotation = { group = "androidx.annotation", name = "annotation", version.ref = "annotation" }
lifecycle-livedata-ktx = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "lifecycleLivedataKtx" }
lifecycle-viewmodel-ktx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "lifecycleViewmodelKtx" }
legacy-support-v4 = { group = "androidx.legacy", name = "legacy-support-v4", version.ref = "legacySupportV4" }
recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "recyclerview" }

[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
Expand Down

0 comments on commit 27e925f

Please sign in to comment.