mirror of
https://github.com/nextcloud/android.git
synced 2024-11-25 14:45:47 +03:00
Replace fragment by FragmentContainerView
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
This commit is contained in:
parent
212b3a6ef9
commit
32a0d1c309
10 changed files with 49 additions and 53 deletions
|
@ -295,6 +295,7 @@ dependencies {
|
||||||
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
|
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
|
||||||
implementation "androidx.work:work-runtime:2.3.4"
|
implementation "androidx.work:work-runtime:2.3.4"
|
||||||
implementation "androidx.work:work-runtime-ktx:2.3.4"
|
implementation "androidx.work:work-runtime-ktx:2.3.4"
|
||||||
|
implementation "androidx.fragment:fragment:1.2.5"
|
||||||
implementation 'com.github.albfernandez:juniversalchardet:2.0.3' // need this version for Android <7
|
implementation 'com.github.albfernandez:juniversalchardet:2.0.3' // need this version for Android <7
|
||||||
compileOnly 'com.google.code.findbugs:annotations:2.0.1'
|
compileOnly 'com.google.code.findbugs:annotations:2.0.1'
|
||||||
implementation 'commons-io:commons-io:2.7'
|
implementation 'commons-io:commons-io:2.7'
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
DO NOT TOUCH; GENERATED BY DRONE
|
DO NOT TOUCH; GENERATED BY DRONE
|
||||||
<span class="mdl-layout-title">Lint Report: 85 warnings</span>
|
<span class="mdl-layout-title">Lint Report: 86 warnings</span>
|
||||||
|
|
|
@ -33,11 +33,11 @@ class EtmMenuFragment : EtmBaseFragment() {
|
||||||
private lateinit var list: RecyclerView
|
private lateinit var list: RecyclerView
|
||||||
|
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||||
adapter = EtmMenuAdapter(context!!, this::onClickedItem)
|
adapter = EtmMenuAdapter(requireContext(), this::onClickedItem)
|
||||||
adapter.pages = vm.pages
|
adapter.pages = vm.pages
|
||||||
val view = inflater.inflate(R.layout.fragment_etm_menu, container, false)
|
val view = inflater.inflate(R.layout.fragment_etm_menu, container, false)
|
||||||
list = view.findViewById(R.id.etm_menu_list)
|
list = view.findViewById(R.id.etm_menu_list)
|
||||||
list.layoutManager = LinearLayoutManager(context!!)
|
list.layoutManager = LinearLayoutManager(requireContext())
|
||||||
list.adapter = adapter
|
list.adapter = adapter
|
||||||
return view
|
return view
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,7 +112,7 @@ class EtmBackgroundJobsFragment : EtmBaseFragment() {
|
||||||
list.layoutManager = LinearLayoutManager(context)
|
list.layoutManager = LinearLayoutManager(context)
|
||||||
list.addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL))
|
list.addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL))
|
||||||
list.adapter = adapter
|
list.adapter = adapter
|
||||||
vm.backgroundJobs.observe(this, Observer { onBackgroundJobsUpdated(it) })
|
vm.backgroundJobs.observe(viewLifecycleOwner, Observer { onBackgroundJobsUpdated(it) })
|
||||||
return view
|
return view
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
package com.owncloud.android.ui.activity;
|
package com.owncloud.android.ui.activity;
|
||||||
|
|
||||||
import android.accounts.Account;
|
import android.accounts.Account;
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.res.ColorStateList;
|
import android.content.res.ColorStateList;
|
||||||
|
@ -51,7 +52,6 @@ import com.owncloud.android.ui.dialog.LocalStoragePathPickerDialogFragment;
|
||||||
import com.owncloud.android.ui.dialog.SortingOrderDialogFragment;
|
import com.owncloud.android.ui.dialog.SortingOrderDialogFragment;
|
||||||
import com.owncloud.android.ui.fragment.ExtendedListFragment;
|
import com.owncloud.android.ui.fragment.ExtendedListFragment;
|
||||||
import com.owncloud.android.ui.fragment.LocalFileListFragment;
|
import com.owncloud.android.ui.fragment.LocalFileListFragment;
|
||||||
import com.owncloud.android.utils.DisplayUtils;
|
|
||||||
import com.owncloud.android.utils.FileSortOrder;
|
import com.owncloud.android.utils.FileSortOrder;
|
||||||
import com.owncloud.android.utils.ThemeUtils;
|
import com.owncloud.android.utils.ThemeUtils;
|
||||||
|
|
||||||
|
@ -64,14 +64,11 @@ import javax.inject.Inject;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.ActionBar;
|
import androidx.appcompat.app.ActionBar;
|
||||||
import androidx.appcompat.widget.SearchView;
|
import androidx.appcompat.widget.SearchView;
|
||||||
import androidx.core.content.res.ResourcesCompat;
|
|
||||||
import androidx.core.view.MenuItemCompat;
|
import androidx.core.view.MenuItemCompat;
|
||||||
import androidx.fragment.app.DialogFragment;
|
import androidx.fragment.app.DialogFragment;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import androidx.fragment.app.FragmentTransaction;
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
|
|
||||||
import static com.owncloud.android.utils.DisplayUtils.openSortingOrderDialogFragment;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays local files and let the user choose what of them wants to upload to the current ownCloud account.
|
* Displays local files and let the user choose what of them wants to upload to the current ownCloud account.
|
||||||
*/
|
*/
|
||||||
|
@ -107,7 +104,6 @@ public class UploadFilesActivity extends FileActivity implements LocalFileListFr
|
||||||
private Menu mOptionsMenu;
|
private Menu mOptionsMenu;
|
||||||
private SearchView mSearchView;
|
private SearchView mSearchView;
|
||||||
private Spinner mBehaviourSpinner;
|
private Spinner mBehaviourSpinner;
|
||||||
private MaterialButton sortButton;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper to launch the UploadFilesActivity for which you would like a result when it finished. Your
|
* Helper to launch the UploadFilesActivity for which you would like a result when it finished. Your
|
||||||
|
@ -125,6 +121,7 @@ public class UploadFilesActivity extends FileActivity implements LocalFileListFr
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@SuppressLint("WrongViewCast") // wrong error on finding local_files_list
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
Log_OC.d(TAG, "onCreate() start");
|
Log_OC.d(TAG, "onCreate() start");
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -170,7 +167,7 @@ public class UploadFilesActivity extends FileActivity implements LocalFileListFr
|
||||||
((MaterialButton) findViewById(R.id.upload_files_btn_upload)).setText(R.string.uploader_btn_alternative_text);
|
((MaterialButton) findViewById(R.id.upload_files_btn_upload)).setText(R.string.uploader_btn_alternative_text);
|
||||||
}
|
}
|
||||||
|
|
||||||
mFileListFragment = (LocalFileListFragment) getSupportFragmentManager().findFragmentById(R.id.local_files_list);
|
mFileListFragment = (LocalFileListFragment) getSupportFragmentManager().findFragmentByTag("local_files_list");
|
||||||
|
|
||||||
// Set input controllers
|
// Set input controllers
|
||||||
MaterialButton cancelButton = findViewById(R.id.upload_files_btn_cancel);
|
MaterialButton cancelButton = findViewById(R.id.upload_files_btn_cancel);
|
||||||
|
@ -181,27 +178,6 @@ public class UploadFilesActivity extends FileActivity implements LocalFileListFr
|
||||||
ThemeUtils.colorPrimaryButton(uploadButton, this);
|
ThemeUtils.colorPrimaryButton(uploadButton, this);
|
||||||
uploadButton.setOnClickListener(this);
|
uploadButton.setOnClickListener(this);
|
||||||
|
|
||||||
sortButton = findViewById(R.id.sort_button);
|
|
||||||
FileSortOrder fileSortOrder = preferences.getSortOrderByType(FileSortOrder.Type.uploadFilesView);
|
|
||||||
sortButton.setText(DisplayUtils.getSortOrderStringId(fileSortOrder));
|
|
||||||
sortButton.setOnClickListener(l -> openSortingOrderDialogFragment(getSupportFragmentManager(), fileSortOrder));
|
|
||||||
|
|
||||||
MaterialButton switchButton = findViewById(R.id.switch_grid_view_button);
|
|
||||||
switchButton.setOnClickListener(l -> {
|
|
||||||
if (isGridView()) {
|
|
||||||
switchButton.setIcon(ResourcesCompat.getDrawable(getResources(),
|
|
||||||
R.drawable.ic_view_module,
|
|
||||||
null));
|
|
||||||
mFileListFragment.switchToListView();
|
|
||||||
} else {
|
|
||||||
switchButton.setIcon(ResourcesCompat.getDrawable(getResources(),
|
|
||||||
R.drawable.ic_view_list,
|
|
||||||
null));
|
|
||||||
mFileListFragment.switchToGridView();
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
int localBehaviour = preferences.getUploaderBehaviour();
|
int localBehaviour = preferences.getUploaderBehaviour();
|
||||||
|
|
||||||
// file upload spinner
|
// file upload spinner
|
||||||
|
@ -339,7 +315,6 @@ public class UploadFilesActivity extends FileActivity implements LocalFileListFr
|
||||||
@Override
|
@Override
|
||||||
public void onSortingOrderChosen(FileSortOrder selection) {
|
public void onSortingOrderChosen(FileSortOrder selection) {
|
||||||
preferences.setSortOrder(FileSortOrder.Type.uploadFilesView, selection);
|
preferences.setSortOrder(FileSortOrder.Type.uploadFilesView, selection);
|
||||||
sortButton.setText(DisplayUtils.getSortOrderStringId(selection));
|
|
||||||
mFileListFragment.sortFiles(selection);
|
mFileListFragment.sortFiles(selection);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -82,6 +82,7 @@ import androidx.annotation.DrawableRes;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.StringRes;
|
import androidx.annotation.StringRes;
|
||||||
import androidx.appcompat.widget.SearchView;
|
import androidx.appcompat.widget.SearchView;
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.core.view.MenuItemCompat;
|
import androidx.core.view.MenuItemCompat;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.recyclerview.widget.GridLayoutManager;
|
import androidx.recyclerview.widget.GridLayoutManager;
|
||||||
|
@ -188,7 +189,7 @@ public class ExtendedListFragment extends Fragment implements
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
public void onCreateOptionsMenu(Menu menu, @NonNull MenuInflater inflater) {
|
||||||
final MenuItem item = menu.findItem(R.id.action_search);
|
final MenuItem item = menu.findItem(R.id.action_search);
|
||||||
searchView = (SearchView) MenuItemCompat.getActionView(item);
|
searchView = (SearchView) MenuItemCompat.getActionView(item);
|
||||||
closeButton = searchView.findViewById(androidx.appcompat.R.id.search_close_btn);
|
closeButton = searchView.findViewById(androidx.appcompat.R.id.search_close_btn);
|
||||||
|
@ -748,4 +749,14 @@ public class ExtendedListFragment extends Fragment implements
|
||||||
((GridLayoutManager) getRecyclerView().getLayoutManager()).setSpanCount(maxColumnSize);
|
((GridLayoutManager) getRecyclerView().getLayoutManager()).setSpanCount(maxColumnSize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void setGridSwitchButton() {
|
||||||
|
if (isGridEnabled()) {
|
||||||
|
mSwitchGridViewButton.setContentDescription(getString(R.string.action_switch_list_view));
|
||||||
|
mSwitchGridViewButton.setIcon(ContextCompat.getDrawable(requireContext(), R.drawable.ic_view_list));
|
||||||
|
} else {
|
||||||
|
mSwitchGridViewButton.setContentDescription(getString(R.string.action_switch_grid_view));
|
||||||
|
mSwitchGridViewButton.setIcon(ContextCompat.getDrawable(requireContext(), R.drawable.ic_view_module));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,7 @@ import com.owncloud.android.R;
|
||||||
import com.owncloud.android.lib.common.utils.Log_OC;
|
import com.owncloud.android.lib.common.utils.Log_OC;
|
||||||
import com.owncloud.android.ui.adapter.LocalFileListAdapter;
|
import com.owncloud.android.ui.adapter.LocalFileListAdapter;
|
||||||
import com.owncloud.android.ui.interfaces.LocalFileListFragmentInterface;
|
import com.owncloud.android.ui.interfaces.LocalFileListFragmentInterface;
|
||||||
|
import com.owncloud.android.utils.DisplayUtils;
|
||||||
import com.owncloud.android.utils.FileSortOrder;
|
import com.owncloud.android.utils.FileSortOrder;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -46,6 +47,8 @@ import androidx.annotation.NonNull;
|
||||||
import androidx.recyclerview.widget.GridLayoutManager;
|
import androidx.recyclerview.widget.GridLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import static com.owncloud.android.utils.DisplayUtils.openSortingOrderDialogFragment;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A Fragment that lists all files and folders in a given LOCAL path.
|
* A Fragment that lists all files and folders in a given LOCAL path.
|
||||||
|
@ -82,7 +85,7 @@ public class LocalFileListFragment extends ExtendedListFragment implements
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(Activity activity) {
|
public void onAttach(@NonNull Activity activity) {
|
||||||
super.onAttach(activity);
|
super.onAttach(activity);
|
||||||
try {
|
try {
|
||||||
mContainerActivity = (ContainerActivity) activity;
|
mContainerActivity = (ContainerActivity) activity;
|
||||||
|
@ -130,6 +133,20 @@ public class LocalFileListFragment extends ExtendedListFragment implements
|
||||||
|
|
||||||
listDirectory(mContainerActivity.getInitialDirectory());
|
listDirectory(mContainerActivity.getInitialDirectory());
|
||||||
|
|
||||||
|
FileSortOrder sortOrder = preferences.getSortOrderByType(FileSortOrder.Type.uploadFilesView);
|
||||||
|
mSortButton.setOnClickListener(v -> openSortingOrderDialogFragment(requireFragmentManager(), sortOrder));
|
||||||
|
mSortButton.setText(DisplayUtils.getSortOrderStringId(sortOrder));
|
||||||
|
|
||||||
|
setGridSwitchButton();
|
||||||
|
mSwitchGridViewButton.setOnClickListener(v -> {
|
||||||
|
if (isGridEnabled()) {
|
||||||
|
switchToListView();
|
||||||
|
} else {
|
||||||
|
switchToGridView();
|
||||||
|
}
|
||||||
|
setGridSwitchButton();
|
||||||
|
});
|
||||||
|
|
||||||
Log_OC.i(TAG, "onActivityCreated() stop");
|
Log_OC.i(TAG, "onActivityCreated() stop");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,7 +154,7 @@ public class LocalFileListFragment extends ExtendedListFragment implements
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
public void onCreateOptionsMenu(Menu menu, @NonNull MenuInflater inflater) {
|
||||||
if (mContainerActivity.isFolderPickerMode()) {
|
if (mContainerActivity.isFolderPickerMode()) {
|
||||||
menu.removeItem(R.id.action_select_all);
|
menu.removeItem(R.id.action_select_all);
|
||||||
menu.removeItem(R.id.action_search);
|
menu.removeItem(R.id.action_search);
|
||||||
|
@ -265,6 +282,7 @@ public class LocalFileListFragment extends ExtendedListFragment implements
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sortFiles(FileSortOrder sortOrder) {
|
public void sortFiles(FileSortOrder sortOrder) {
|
||||||
|
mSortButton.setText(DisplayUtils.getSortOrderStringId(sortOrder));
|
||||||
mAdapter.setSortOrder(sortOrder);
|
mAdapter.setSortOrder(sortOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1315,16 +1315,6 @@ public class OCFileListFragment extends ExtendedListFragment implements
|
||||||
mAdapter.setSortOrder(mFile, sortOrder);
|
mAdapter.setSortOrder(mFile, sortOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setGridSwitchButton() {
|
|
||||||
if (isGridEnabled()) {
|
|
||||||
mSwitchGridViewButton.setContentDescription(getString(R.string.action_switch_list_view));
|
|
||||||
mSwitchGridViewButton.setIcon(ContextCompat.getDrawable(requireContext(), R.drawable.ic_view_list));
|
|
||||||
} else {
|
|
||||||
mSwitchGridViewButton.setContentDescription(getString(R.string.action_switch_grid_view));
|
|
||||||
mSwitchGridViewButton.setIcon(ContextCompat.getDrawable(requireContext(), R.drawable.ic_view_module));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determines if user set folder to grid or list view. If folder is not set itself,
|
* Determines if user set folder to grid or list view. If folder is not set itself,
|
||||||
* it finds a parent that is set (at least root is set).
|
* it finds a parent that is set (at least root is set).
|
||||||
|
|
|
@ -162,7 +162,7 @@ public class ContactListFragment extends FileFragment implements Injectable {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
||||||
super.onCreateOptionsMenu(menu, inflater);
|
super.onCreateOptionsMenu(menu, inflater);
|
||||||
inflater.inflate(R.menu.fragment_contact_list, menu);
|
inflater.inflate(R.menu.fragment_contact_list, menu);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,9 +25,10 @@
|
||||||
|
|
||||||
<include layout="@layout/toolbar_standard" />
|
<include layout="@layout/toolbar_standard" />
|
||||||
|
|
||||||
<fragment
|
<androidx.fragment.app.FragmentContainerView
|
||||||
android:id="@+id/local_files_list"
|
android:id="@+id/local_files_list_container"
|
||||||
class="com.owncloud.android.ui.fragment.LocalFileListFragment"
|
android:name="com.owncloud.android.ui.fragment.LocalFileListFragment"
|
||||||
|
android:tag="local_files_list"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1" />
|
||||||
|
|
Loading…
Reference in a new issue