From 6598b585a25122196754a57bca4434882adc97aa Mon Sep 17 00:00:00 2001 From: jendib Date: Sun, 20 Mar 2016 21:44:53 +0100 Subject: [PATCH] Closes #18: Android: Group profile --- docs-android/app/src/main/AndroidManifest.xml | 3 + .../docs/activity/DocumentViewActivity.java | 4 + .../docs/activity/GroupProfileActivity.java | 92 +++++++++++++++++++ .../sismics/docs/activity/LoginActivity.java | 1 - .../sismics/docs/activity/MainActivity.java | 1 - .../docs/activity/SettingsActivity.java | 1 - .../docs/activity/UserProfileActivity.java | 2 - .../main/res/layout/groupprofile_activity.xml | 30 ++++++ 8 files changed, 129 insertions(+), 5 deletions(-) create mode 100644 docs-android/app/src/main/java/com/sismics/docs/activity/GroupProfileActivity.java create mode 100644 docs-android/app/src/main/res/layout/groupprofile_activity.xml diff --git a/docs-android/app/src/main/AndroidManifest.xml b/docs-android/app/src/main/AndroidManifest.xml index 27cf2761..55966780 100644 --- a/docs-android/app/src/main/AndroidManifest.xml +++ b/docs-android/app/src/main/AndroidManifest.xml @@ -54,6 +54,9 @@ + + diff --git a/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentViewActivity.java b/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentViewActivity.java index 884ef4bd..ec38eae4 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentViewActivity.java +++ b/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentViewActivity.java @@ -659,6 +659,10 @@ public class DocumentViewActivity extends AppCompatActivity { Intent intent = new Intent(DocumentViewActivity.this, UserProfileActivity.class); intent.putExtra("username", acl.getName()); startActivity(intent); + } else if (acl.getType().equals("GROUP")) { + Intent intent = new Intent(DocumentViewActivity.this, GroupProfileActivity.class); + intent.putExtra("name", acl.getName()); + startActivity(intent); } } }); diff --git a/docs-android/app/src/main/java/com/sismics/docs/activity/GroupProfileActivity.java b/docs-android/app/src/main/java/com/sismics/docs/activity/GroupProfileActivity.java new file mode 100644 index 00000000..e25b00c5 --- /dev/null +++ b/docs-android/app/src/main/java/com/sismics/docs/activity/GroupProfileActivity.java @@ -0,0 +1,92 @@ +package com.sismics.docs.activity; + +import android.content.Intent; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.view.MenuItem; +import android.view.View; +import android.widget.ProgressBar; +import android.widget.TextView; + +import com.sismics.docs.R; +import com.sismics.docs.listener.HttpCallback; +import com.sismics.docs.model.application.ApplicationContext; +import com.sismics.docs.resource.UserResource; + +import org.json.JSONArray; +import org.json.JSONObject; + +/** + * Group profile activity. + * + * @author bgamard. + */ +public class GroupProfileActivity extends AppCompatActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Check if logged in + if (!ApplicationContext.getInstance().isLoggedIn()) { + startActivity(new Intent(this, LoginActivity.class)); + finish(); + return; + } + + // Handle activity context + if (getIntent() == null) { + finish(); + return; + } + + // Input name + final String name = getIntent().getStringExtra("name"); + if (name == null) { + finish(); + return; + } + + // Setup the activity + setTitle(name); + setContentView(R.layout.groupprofile_activity); + if (getSupportActionBar() != null) { + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setHomeButtonEnabled(true); + } + + // Get the group and populate the view + final ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBar); + final View layoutView = findViewById(R.id.layout); + progressBar.setVisibility(View.VISIBLE); + layoutView.setVisibility(View.GONE); + UserResource.get(this, name, new HttpCallback() { + @Override + public void onSuccess(JSONObject json) { + TextView membersTextView = (TextView) findViewById(R.id.membersTextView); + JSONArray members = json.optJSONArray("members"); + String output = ""; + for (int i = 0; i < members.length(); i++) { + output += members.optString(i) + "; "; + } + membersTextView.setText(output); + } + + @Override + public void onFinish() { + progressBar.setVisibility(View.GONE); + layoutView.setVisibility(View.VISIBLE); + } + }); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + finish(); + return true; + } + + return super.onOptionsItemSelected(item); + } +} diff --git a/docs-android/app/src/main/java/com/sismics/docs/activity/LoginActivity.java b/docs-android/app/src/main/java/com/sismics/docs/activity/LoginActivity.java index 096588bd..26c030b0 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/activity/LoginActivity.java +++ b/docs-android/app/src/main/java/com/sismics/docs/activity/LoginActivity.java @@ -30,7 +30,6 @@ import org.json.JSONObject; * @author bgamard */ public class LoginActivity extends AppCompatActivity { - /** * User interface. */ diff --git a/docs-android/app/src/main/java/com/sismics/docs/activity/MainActivity.java b/docs-android/app/src/main/java/com/sismics/docs/activity/MainActivity.java index 04c0add0..0c9232cb 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/activity/MainActivity.java +++ b/docs-android/app/src/main/java/com/sismics/docs/activity/MainActivity.java @@ -42,7 +42,6 @@ import org.json.JSONObject; */ public class MainActivity extends AppCompatActivity { - private ActionBarDrawerToggle drawerToggle; private MenuItem searchItem; private DrawerLayout drawerLayout; diff --git a/docs-android/app/src/main/java/com/sismics/docs/activity/SettingsActivity.java b/docs-android/app/src/main/java/com/sismics/docs/activity/SettingsActivity.java index 176e8120..54b81de9 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/activity/SettingsActivity.java +++ b/docs-android/app/src/main/java/com/sismics/docs/activity/SettingsActivity.java @@ -12,7 +12,6 @@ import com.sismics.docs.fragment.SettingsFragment; * @author bgamard. */ public class SettingsActivity extends AppCompatActivity { - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/docs-android/app/src/main/java/com/sismics/docs/activity/UserProfileActivity.java b/docs-android/app/src/main/java/com/sismics/docs/activity/UserProfileActivity.java index af979fc3..28229365 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/activity/UserProfileActivity.java +++ b/docs-android/app/src/main/java/com/sismics/docs/activity/UserProfileActivity.java @@ -2,7 +2,6 @@ package com.sismics.docs.activity; import android.content.Intent; import android.os.Bundle; -import android.preference.PreferenceGroup; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; import android.view.View; @@ -22,7 +21,6 @@ import org.json.JSONObject; * @author bgamard. */ public class UserProfileActivity extends AppCompatActivity { - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/docs-android/app/src/main/res/layout/groupprofile_activity.xml b/docs-android/app/src/main/res/layout/groupprofile_activity.xml new file mode 100644 index 00000000..3a2cd126 --- /dev/null +++ b/docs-android/app/src/main/res/layout/groupprofile_activity.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + \ No newline at end of file