فهرست منبع

OC-1770: When deleting the account, log in screen is not shown

masensio 11 سال پیش
والد
کامیت
673c884752
1فایلهای تغییر یافته به همراه42 افزوده شده و 14 حذف شده
  1. 42 14
      src/com/owncloud/android/ui/activity/AccountSelectActivity.java

+ 42 - 14
src/com/owncloud/android/ui/activity/AccountSelectActivity.java

@@ -194,26 +194,54 @@ public class AccountSelectActivity extends SherlockListActivity implements
         return true;
     }
 
+    @Override
+    public void onContentChanged() {
+        // TODO Auto-generated method stub
+        super.onContentChanged();
+        AccountManager am = (AccountManager) getSystemService(ACCOUNT_SERVICE);
+        if (am.getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE).length == 0) {
+            // Show create account screen
+            am.addAccount(AccountAuthenticator.ACCOUNT_TYPE, 
+                    null,
+                    null, 
+                    null, 
+                    this, 
+                    null,                        
+                    null);
+        }
+    }
+
     private void populateAccountList() {
         AccountManager am = (AccountManager) getSystemService(ACCOUNT_SERVICE);
         Account accounts[] = am
                 .getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE);
-        LinkedList<HashMap<String, String>> ll = new LinkedList<HashMap<String, String>>();
-        for (Account a : accounts) {
-            HashMap<String, String> h = new HashMap<String, String>();
-            h.put("NAME", a.name);
-            h.put("VER",
-                    "ownCloud version: "
-                            + am.getUserData(a,
-                                    AccountAuthenticator.KEY_OC_VERSION));
-            ll.add(h);
+        if (am.getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE).length == 0) {
+            // Show create account screen if there isn't any account
+            am.addAccount(AccountAuthenticator.ACCOUNT_TYPE, 
+                    null,
+                    null, 
+                    null, 
+                    this, 
+                    null,                        
+                    null);
         }
+        else {
+            LinkedList<HashMap<String, String>> ll = new LinkedList<HashMap<String, String>>();
+            for (Account a : accounts) {
+                HashMap<String, String> h = new HashMap<String, String>();
+                h.put("NAME", a.name);
+                h.put("VER",
+                        "ownCloud version: "
+                                + am.getUserData(a,
+                                        AccountAuthenticator.KEY_OC_VERSION));
+                ll.add(h);
+            }
 
-        setListAdapter(new AccountCheckedSimpleAdepter(this, ll,
-                android.R.layout.simple_list_item_single_choice,
-                new String[] { "NAME" }, new int[] { android.R.id.text1 }));
-        registerForContextMenu(getListView());
-        
+            setListAdapter(new AccountCheckedSimpleAdepter(this, ll,
+                    android.R.layout.simple_list_item_single_choice,
+                    new String[] { "NAME" }, new int[] { android.R.id.text1 }));
+            registerForContextMenu(getListView());
+        }
     }
 
     @Override