diff --git a/build.gradle b/build.gradle
index eabda2d..8105272 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,7 +3,7 @@ buildscript {
mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.1.0'
+ classpath 'com.android.tools.build:gradle:2.1.2'
}
}
diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index ce46e97..c404535 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -3,7 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="37"
android:versionName="0.21.2">
-
+
@@ -105,6 +105,14 @@
android:name=".activities.remote_account.ContactListActivity"
android:label="@string/title_activity_select_contact">
+
+
+
+
-
+
\ No newline at end of file
diff --git a/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/AccountActionsActivity.java b/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/AccountActionsActivity.java
new file mode 100644
index 0000000..56efdea
--- /dev/null
+++ b/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/AccountActionsActivity.java
@@ -0,0 +1,49 @@
+package fr.unix_experience.owncloud_sms.activities.remote_account;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+
+import java.util.ArrayList;
+
+import fr.unix_experience.android_lib.AppCompatListActivity;
+import fr.unix_experience.owncloud_sms.R;
+
+public class AccountActionsActivity extends AppCompatListActivity {
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setContentView(R.layout.activity_account_actions);
+
+ ArrayList itemList = new ArrayList<>();
+ ArrayAdapter adp = new ArrayAdapter<>(getBaseContext(),
+ android.R.layout.simple_dropdown_item_1line, itemList);
+ setListAdapter(adp);
+
+ // Create item list
+ itemList.add(getBaseContext().getString(R.string.restore_all_messages));
+
+ adp.notifyDataSetChanged();
+
+ // Fetch account name from intent
+ _accountName = getIntent().getStringExtra("account");
+ }
+
+ @Override
+ protected void onListItemClick(ListView l, View v, int position, long id) {
+ switch (position) {
+ case 0:
+ Intent intent = new Intent(this, RestoreMessagesActivity.class);
+ intent.putExtra("account", _accountName);
+ startActivity(intent);
+ break;
+ default: break; // Unhandled
+ }
+ }
+
+ private String _accountName = "";
+ private static final String TAG = AccountActionsActivity.class.getSimpleName();
+}
diff --git a/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/AccountListActivity.java b/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/AccountListActivity.java
index 25e7b91..f80f487 100644
--- a/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/AccountListActivity.java
+++ b/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/AccountListActivity.java
@@ -12,8 +12,7 @@ import fr.unix_experience.android_lib.AppCompatListActivity;
import fr.unix_experience.owncloud_sms.R;
public class AccountListActivity extends AppCompatListActivity {
- ArrayList listItems = new ArrayList<>();
- AndroidAccountAdapter adapter;
+
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -22,16 +21,18 @@ public class AccountListActivity extends AppCompatListActivity {
setContentView(R.layout.restore_activity_accountlist);
- adapter = new AndroidAccountAdapter(this,
+ ArrayList itemList = new ArrayList<>();
+
+ AndroidAccountAdapter adapter = new AndroidAccountAdapter(this,
android.R.layout.simple_list_item_1,
- listItems,
+ itemList,
R.layout.account_list_item,
- R.id.accountname, ContactListActivity.class);
+ R.id.accountname, AccountActionsActivity.class);
setListAdapter(adapter);
Account[] accountList =
_accountMgr.getAccountsByType(getString(R.string.account_type));
- Collections.addAll(listItems, accountList);
+ Collections.addAll(itemList, accountList);
adapter.notifyDataSetChanged();
diff --git a/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/ContactListActivity.java b/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/ContactListActivity.java
index 450f537..a98c3a4 100644
--- a/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/ContactListActivity.java
+++ b/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/ContactListActivity.java
@@ -69,13 +69,15 @@ public class ContactListActivity extends AppCompatActivity implements ASyncConta
final Spinner sp = (Spinner) findViewById(R.id.contact_spinner);
mContactInfos = (LinearLayout) findViewById(R.id.contactinfos_layout);
final ProgressBar contactProgressBar = (ProgressBar) findViewById(R.id.contactlist_pgbar);
- final ListView contactPhoneListView = (ListView) findViewById(R.id.contact_phonelistView);
+ ListView contactPhoneListView = (ListView) findViewById(R.id.contact_phonelistView);
mContactPhoneListAdapter = new RecoveryPhoneNumberListViewAdapter(getBaseContext());
+ assert contactPhoneListView != null;
contactPhoneListView.setAdapter(mContactPhoneListAdapter);
mContactInfos.setVisibility(View.INVISIBLE);
- sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ assert sp != null;
+ sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
mContactInfos.setVisibility(View.INVISIBLE);
@@ -97,7 +99,8 @@ public class ContactListActivity extends AppCompatActivity implements ASyncConta
for (final Account element : myAccountList) {
if (element.name.equals(accountName)) {
// Load "contacts"
- contactProgressBar.setVisibility(View.VISIBLE);
+ assert contactProgressBar != null;
+ contactProgressBar.setVisibility(View.VISIBLE);
new ContactLoadTask(element, getBaseContext(), mAdapter, mObjects, mLayout, contactProgressBar, mContactInfos).execute();
// Add refresh handler
diff --git a/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/RestoreMessagesActivity.java b/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/RestoreMessagesActivity.java
new file mode 100644
index 0000000..df3dfc7
--- /dev/null
+++ b/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/RestoreMessagesActivity.java
@@ -0,0 +1,15 @@
+package fr.unix_experience.owncloud_sms.activities.remote_account;
+
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+
+import fr.unix_experience.owncloud_sms.R;
+
+public class RestoreMessagesActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_restore_messages);
+ }
+}
diff --git a/src/main/java/fr/unix_experience/owncloud_sms/notifications/OCSMSNotificationUI.java b/src/main/java/fr/unix_experience/owncloud_sms/notifications/OCSMSNotificationUI.java
index 3335aaa..bf92202 100644
--- a/src/main/java/fr/unix_experience/owncloud_sms/notifications/OCSMSNotificationUI.java
+++ b/src/main/java/fr/unix_experience/owncloud_sms/notifications/OCSMSNotificationUI.java
@@ -34,19 +34,19 @@ public class OCSMSNotificationUI {
*
* @see #cancel(Context)
*/
- public static void notify(final Context context, final String titleString,
- final String contentString, final int number) {
- final Resources res = context.getResources();
+ public static void notify(Context context, String titleString,
+ String contentString, int number) {
+ Resources res = context.getResources();
// This image is used as the notification's large icon (thumbnail).
// TODO: Remove this if your notification has no relevant thumbnail.
- final Bitmap picture = BitmapFactory.decodeResource(res, R.drawable.ic_launcher);
+ Bitmap picture = BitmapFactory.decodeResource(res, R.drawable.ic_launcher);
- final String ticker = (titleString.length() > 20) ? titleString.substring(0, 20) : titleString;
- final String title = res.getString(R.string.ui_notification_title_template, titleString);
+ String ticker = (titleString.length() > 20) ? titleString.substring(0, 20) : titleString;
+ String title = res.getString(R.string.ui_notification_title_template, titleString);
- final NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
+ NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
// Set appropriate defaults for the notification light, sound,
// and vibration.
@@ -76,17 +76,17 @@ public class OCSMSNotificationUI {
.setSummaryText(titleString))
.setAutoCancel(true);
- notify(context, builder.build());
+ OCSMSNotificationUI.notify(context, builder.build());
}
@TargetApi(Build.VERSION_CODES.ECLAIR)
- private static void notify(final Context context, final Notification notification) {
- final NotificationManager nm = (NotificationManager) context
+ private static void notify(Context context, Notification notification) {
+ NotificationManager nm = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR) {
- nm.notify(NOTIFICATION_TAG, 0, notification);
+ nm.notify(OCSMSNotificationUI.NOTIFICATION_TAG, 0, notification);
} else {
- nm.notify(NOTIFICATION_TAG.hashCode(), notification);
+ nm.notify(OCSMSNotificationUI.NOTIFICATION_TAG.hashCode(), notification);
}
}
@@ -95,13 +95,13 @@ public class OCSMSNotificationUI {
* {@link #notify(Context, String, int)}.
*/
@TargetApi(Build.VERSION_CODES.ECLAIR)
- public static void cancel(final Context context) {
- final NotificationManager nm = (NotificationManager) context
+ public static void cancel(Context context) {
+ NotificationManager nm = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR) {
- nm.cancel(NOTIFICATION_TAG, 0);
+ nm.cancel(OCSMSNotificationUI.NOTIFICATION_TAG, 0);
} else {
- nm.cancel(NOTIFICATION_TAG.hashCode());
+ nm.cancel(OCSMSNotificationUI.NOTIFICATION_TAG.hashCode());
}
}
}
diff --git a/src/main/res/layout/activity_account_actions.xml b/src/main/res/layout/activity_account_actions.xml
new file mode 100644
index 0000000..84744b0
--- /dev/null
+++ b/src/main/res/layout/activity_account_actions.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
diff --git a/src/main/res/layout/activity_restore_messages.xml b/src/main/res/layout/activity_restore_messages.xml
new file mode 100644
index 0000000..df1a6fb
--- /dev/null
+++ b/src/main/res/layout/activity_restore_messages.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
diff --git a/src/main/res/values-en/strings.xml b/src/main/res/values-en/strings.xml
index 62f5328..7c03d25 100644
--- a/src/main/res/values-en/strings.xml
+++ b/src/main/res/values-en/strings.xml
@@ -168,5 +168,7 @@
We cannot read your contacts.
We cannot read your SMS.
App Infos and permissions
+ Restore all messages
+ Account actions
diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml
index fdd22bc..ded36ae 100644
--- a/src/main/res/values-fr/strings.xml
+++ b/src/main/res/values-fr/strings.xml
@@ -153,4 +153,6 @@
Nous ne pouvons lire vos contacts.
Nous ne pouvons pas lire vos SMS.
Infos et permissions
+ Restaurer tous les messages
+ Actions du compte
diff --git a/src/main/res/values/google_playstore_strings.xml b/src/main/res/values/google_playstore_strings.xml
index 35ccaa5..8afe57b 100644
--- a/src/main/res/values/google_playstore_strings.xml
+++ b/src/main/res/values/google_playstore_strings.xml
@@ -27,7 +27,7 @@
-->
- 3
+ 3
ownCloud SMS synchronize your local SMS on your ownCloud instance
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 4dc692d..bef407d 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -41,7 +41,7 @@
Login logo
- ownCloudSMSPrefs
+ ownCloudSMSPrefs
last_message_date
@@ -203,4 +203,6 @@
We cannot read your contacts.
We cannot read your SMS.
App Infos and permissions
+ Restore all messages
+ Account actions