Bläddra i källkod

implement delete action

AndyScherzinger 8 år sedan
förälder
incheckning
4060527aab

+ 11 - 0
src/main/java/com/owncloud/android/datamodel/SyncedFolderProvider.java

@@ -279,6 +279,17 @@ public class SyncedFolderProvider extends Observable {
         );
     }
 
+    /**
+     * delete record of synchronized folder with the given id.
+     */
+    public int deleteSyncedFolder(long id) {
+        return mContentResolver.delete(
+                ProviderMeta.ProviderTableMeta.CONTENT_URI_SYNCED_FOLDERS,
+                ProviderMeta.ProviderTableMeta._ID + " = ?",
+                new String[]{String.valueOf(id)}
+        );
+    }
+
     /**
      * update given synced folder.
      *

+ 9 - 0
src/main/java/com/owncloud/android/ui/activity/FolderSyncActivity.java

@@ -512,6 +512,15 @@ public class FolderSyncActivity extends FileActivity implements FolderSyncAdapte
         mSyncedFolderPreferencesDialogFragment = null;
     }
 
+    @Override
+    public void onDeleteSyncedFolderPreference(SyncedFolderParcelable syncedFolder) {
+        // TODO refresh recycler view
+
+        mSyncedFolderProvider.deleteSyncedFolder(syncedFolder.getId());
+
+        mAdapter.removeItem(syncedFolder.getSection());
+    }
+
     /**
      * update given synced folder with the given values.
      *

+ 1 - 1
src/main/java/com/owncloud/android/ui/activity/Preferences.java

@@ -209,7 +209,7 @@ public class Preferences extends PreferenceActivity
             pUploadOnWifiCheckbox.setOnPreferenceClickListener(new OnPreferenceClickListener() {
                 @Override
                 public boolean onPreferenceClick(Preference preference) {
-                    arbitraryDataProvider.storeOrUpdateKeyValue(account, SYNCED_FOLDER_LIGHT_UPLOAD_ON_WIFI,
+                    arbitraryDataProvider.storeOrUpdateKeyValue(account.name, SYNCED_FOLDER_LIGHT_UPLOAD_ON_WIFI,
                             String.valueOf(pUploadOnWifiCheckbox.isChecked()));
 
                     return true;

+ 25 - 20
src/main/java/com/owncloud/android/ui/adapter/FolderSyncAdapter.java

@@ -86,6 +86,11 @@ public class FolderSyncAdapter extends SectionedRecyclerViewAdapter<FolderSyncAd
         notifyDataSetChanged();
     }
 
+    public void removeItem(int section) {
+        mSyncFolderItems.remove(section);
+        notifyDataSetChanged();
+    }
+
     @Override
     public int getSectionCount() {
         return mSyncFolderItems.size();
@@ -132,30 +137,30 @@ public class FolderSyncAdapter extends SectionedRecyclerViewAdapter<FolderSyncAd
             });
             setSyncButtonActiveIcon(holder.syncStatusButton, mSyncFolderItems.get(section).isEnabled());
 
-                    holder.syncStatusButton.setVisibility(View.VISIBLE);
-        holder.syncStatusButton.setTag(section);
-        holder.syncStatusButton.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                mSyncFolderItems.get(section).setEnabled(!mSyncFolderItems.get(section).isEnabled());
-                setSyncButtonActiveIcon(holder.syncStatusButton, mSyncFolderItems.get(section).isEnabled());
-                mListener.onSyncStatusToggleClick(section, mSyncFolderItems.get(section));
-            }
-        });
-        setSyncButtonActiveIcon(holder.syncStatusButton, mSyncFolderItems.get(section).isEnabled());
-
-        if (mLight) {
-            holder.menuButton.setVisibility(View.GONE);
-        } else {
-            holder.menuButton.setVisibility(View.VISIBLE);
-            holder.menuButton.setTag(section);
-            holder.menuButton.setOnClickListener(new View.OnClickListener() {
+            holder.syncStatusButton.setVisibility(View.VISIBLE);
+            holder.syncStatusButton.setTag(section);
+            holder.syncStatusButton.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
-                    mListener.onSyncFolderSettingsClick(section, mSyncFolderItems.get(section));
+                    mSyncFolderItems.get(section).setEnabled(!mSyncFolderItems.get(section).isEnabled());
+                    setSyncButtonActiveIcon(holder.syncStatusButton, mSyncFolderItems.get(section).isEnabled());
+                    mListener.onSyncStatusToggleClick(section, mSyncFolderItems.get(section));
                 }
             });
-        }
+            setSyncButtonActiveIcon(holder.syncStatusButton, mSyncFolderItems.get(section).isEnabled());
+
+            if (mLight) {
+                holder.menuButton.setVisibility(View.GONE);
+            } else {
+                holder.menuButton.setVisibility(View.VISIBLE);
+                holder.menuButton.setTag(section);
+                holder.menuButton.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        mListener.onSyncFolderSettingsClick(section, mSyncFolderItems.get(section));
+                    }
+                });
+            }
         } else {
             holder.mainHeaderContainer.setVisibility(View.GONE);
             holder.customFolderHeaderContainer.setVisibility(View.VISIBLE);

+ 11 - 0
src/main/java/com/owncloud/android/ui/dialog/SyncedFolderPreferencesDialogFragment.java

@@ -239,6 +239,7 @@ public class SyncedFolderPreferencesDialogFragment extends DialogFragment {
     private void setupListeners(View view) {
         mSave.setOnClickListener(new OnSyncedFolderSaveClickListener());
         mCancel.setOnClickListener(new OnSyncedFolderCancelClickListener());
+        view.findViewById(R.id.delete).setOnClickListener(new OnSyncedFolderDeleteClickListener());
 
         view.findViewById(R.id.setting_instant_upload_on_wifi_container).setOnClickListener(
                 new OnClickListener() {
@@ -368,10 +369,20 @@ public class SyncedFolderPreferencesDialogFragment extends DialogFragment {
         }
     }
 
+    private class OnSyncedFolderDeleteClickListener implements OnClickListener {
+        @Override
+        public void onClick(View v) {
+            dismiss();
+            ((OnSyncedFolderPreferenceListener) getActivity()).onDeleteSyncedFolderPreference(mSyncedFolder);
+        }
+    }
+
     public interface OnSyncedFolderPreferenceListener {
         void onSaveSyncedFolderPreference(SyncedFolderParcelable syncedFolder);
 
         void onCancelSyncedFolderPreference();
+
+        void onDeleteSyncedFolderPreference(SyncedFolderParcelable syncedFolder);
     }
 
     @Override