Pebble: add a FAB in App Manager which launches a file manager to chose a file
This is similar to #247 but simpler and using a FAB, also it explicitly targets our Activity instead of allowing to open a video in a video player which using this feature Also suggested in #520
This commit is contained in:
parent
e19ea26478
commit
f81ff8591b
|
@ -1,16 +1,19 @@
|
||||||
package nodomain.freeyourgadget.gadgetbridge.activities.appmanager;
|
package nodomain.freeyourgadget.gadgetbridge.activities.appmanager;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.design.widget.FloatingActionButton;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v4.app.FragmentManager;
|
import android.support.v4.app.FragmentManager;
|
||||||
import android.support.v4.app.NavUtils;
|
import android.support.v4.app.NavUtils;
|
||||||
import android.support.v4.content.LocalBroadcastManager;
|
import android.support.v4.content.LocalBroadcastManager;
|
||||||
import android.support.v4.view.ViewPager;
|
import android.support.v4.view.ViewPager;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -28,6 +31,7 @@ import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.activities.AbstractFragmentPagerAdapter;
|
import nodomain.freeyourgadget.gadgetbridge.activities.AbstractFragmentPagerAdapter;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.activities.AbstractGBFragmentActivity;
|
import nodomain.freeyourgadget.gadgetbridge.activities.AbstractGBFragmentActivity;
|
||||||
|
import nodomain.freeyourgadget.gadgetbridge.activities.FwAppInstallerActivity;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.FileUtils;
|
import nodomain.freeyourgadget.gadgetbridge.util.FileUtils;
|
||||||
|
|
||||||
|
@ -35,6 +39,7 @@ import nodomain.freeyourgadget.gadgetbridge.util.FileUtils;
|
||||||
public class AppManagerActivity extends AbstractGBFragmentActivity {
|
public class AppManagerActivity extends AbstractGBFragmentActivity {
|
||||||
|
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(AbstractAppManagerFragment.class);
|
private static final Logger LOG = LoggerFactory.getLogger(AbstractAppManagerFragment.class);
|
||||||
|
private int READ_REQUEST_CODE = 42;
|
||||||
|
|
||||||
private GBDevice mGBDevice = null;
|
private GBDevice mGBDevice = null;
|
||||||
|
|
||||||
|
@ -68,6 +73,18 @@ public class AppManagerActivity extends AbstractGBFragmentActivity {
|
||||||
throw new IllegalArgumentException("Must provide a device when invoking this activity");
|
throw new IllegalArgumentException("Must provide a device when invoking this activity");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
|
||||||
|
assert fab != null;
|
||||||
|
fab.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
|
||||||
|
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
||||||
|
intent.setType("*/*");
|
||||||
|
startActivityForResult(intent, READ_REQUEST_CODE);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
IntentFilter filterLocal = new IntentFilter();
|
IntentFilter filterLocal = new IntentFilter();
|
||||||
filterLocal.addAction(GBApplication.ACTION_QUIT);
|
filterLocal.addAction(GBApplication.ACTION_QUIT);
|
||||||
filterLocal.addAction(GBDevice.ACTION_DEVICE_CHANGED);
|
filterLocal.addAction(GBDevice.ACTION_DEVICE_CHANGED);
|
||||||
|
@ -93,7 +110,7 @@ public class AppManagerActivity extends AbstractGBFragmentActivity {
|
||||||
|
|
||||||
public class SectionsPagerAdapter extends AbstractFragmentPagerAdapter {
|
public class SectionsPagerAdapter extends AbstractFragmentPagerAdapter {
|
||||||
|
|
||||||
public SectionsPagerAdapter(FragmentManager fm) {
|
SectionsPagerAdapter(FragmentManager fm) {
|
||||||
super(fm);
|
super(fm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,6 +196,16 @@ public class AppManagerActivity extends AbstractGBFragmentActivity {
|
||||||
return uuids;
|
return uuids;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActivityResult(int requestCode, int resultCode, Intent resultData) {
|
||||||
|
if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
|
||||||
|
Intent startIntent = new Intent(AppManagerActivity.this, FwAppInstallerActivity.class);
|
||||||
|
startIntent.setAction(Intent.ACTION_VIEW);
|
||||||
|
startIntent.setDataAndType(resultData.getData(), null);
|
||||||
|
startActivity(startIntent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
LocalBroadcastManager.getInstance(this).unregisterReceiver(mReceiver);
|
LocalBroadcastManager.getInstance(this).unregisterReceiver(mReceiver);
|
||||||
|
|
|
@ -1,17 +1,10 @@
|
||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
tools:context="nodomain.freeyourgadget.gadgetbridge.activities.appmanager.AbstractAppManagerFragment">
|
tools:context="nodomain.freeyourgadget.gadgetbridge.activities.appmanager.AbstractAppManagerFragment">
|
||||||
|
|
||||||
<FrameLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="fill_parent">
|
|
||||||
|
|
||||||
<com.woxthebox.draglistview.DragListView
|
<com.woxthebox.draglistview.DragListView
|
||||||
android:id="@+id/appListView"
|
android:id="@+id/appListView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="fill_parent" />
|
android:layout_height="fill_parent" />
|
||||||
</FrameLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
</FrameLayout>
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:paddingBottom="0px"
|
android:paddingBottom="0px"
|
||||||
android:paddingLeft="0px"
|
android:paddingLeft="0px"
|
||||||
android:paddingRight="0px"
|
android:paddingRight="0px"
|
||||||
|
@ -28,5 +29,17 @@
|
||||||
</android.support.v4.view.ViewPager>
|
</android.support.v4.view.ViewPager>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
<android.support.design.widget.FloatingActionButton
|
||||||
|
android:id="@+id/fab"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentBottom="true"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_gravity="bottom|end"
|
||||||
|
android:src="@drawable/ic_add_white"
|
||||||
|
app:elevation="6dp"
|
||||||
|
app:pressedTranslationZ="12dp"
|
||||||
|
android:layout_marginBottom="10dp"
|
||||||
|
android:layout_marginRight="10dp" />
|
||||||
|
|
||||||
</android.widget.RelativeLayout>
|
</android.widget.RelativeLayout>
|
||||||
|
|
Loading…
Reference in New Issue