mirror of
https://github.com/KDE/kdeconnect-android
synced 2025-09-02 23:25:10 +00:00
Add swipe to refresh to device pairing activity
This makes it more conform to material design standard REVIEW: 129980
This commit is contained in:
17
res/layout/activity_refresh_list.xml
Normal file
17
res/layout/activity_refresh_list.xml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/refresh_list_layout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<ListView android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:paddingLeft="16dip"
|
||||||
|
android:paddingRight="16dip"
|
||||||
|
tools:context=".MainActivity"
|
||||||
|
android:id="@+id/listView1"
|
||||||
|
android:addStatesFromChildren="true"
|
||||||
|
android:orientation="vertical"/>
|
||||||
|
|
||||||
|
</android.support.v4.widget.SwipeRefreshLayout>
|
@@ -9,14 +9,6 @@
|
|||||||
android:title="@string/refresh"
|
android:title="@string/refresh"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<item
|
|
||||||
android:id="@+id/menu_progress"
|
|
||||||
android:orderInCategory="200"
|
|
||||||
android:visible="false"
|
|
||||||
kdeconnect:showAsAction="ifRoom"
|
|
||||||
kdeconnect:actionViewClass="android.widget.ProgressBar"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/menu_rename"
|
android:id="@+id/menu_rename"
|
||||||
android:orderInCategory="300"
|
android:orderInCategory="300"
|
||||||
|
@@ -5,16 +5,8 @@
|
|||||||
android:id="@+id/menu_refresh"
|
android:id="@+id/menu_refresh"
|
||||||
android:icon="@drawable/ic_action_refresh"
|
android:icon="@drawable/ic_action_refresh"
|
||||||
android:orderInCategory="200"
|
android:orderInCategory="200"
|
||||||
kdeconnect:showAsAction="ifRoom"
|
kdeconnect:showAsAction="never"
|
||||||
android:title="@string/refresh"
|
android:title="@string/refresh"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<item
|
|
||||||
android:id="@+id/menu_progress"
|
|
||||||
android:orderInCategory="200"
|
|
||||||
android:visible="false"
|
|
||||||
kdeconnect:showAsAction="ifRoom"
|
|
||||||
kdeconnect:actionViewClass="android.widget.ProgressBar"
|
|
||||||
/>
|
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
|
@@ -23,8 +23,9 @@ package org.kde.kdeconnect.Plugins.SharePlugin;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.v4.widget.SwipeRefreshLayout;
|
||||||
import android.support.v7.app.ActionBar;
|
import android.support.v7.app.ActionBar;
|
||||||
import android.support.v7.app.ActionBarActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
@@ -32,7 +33,6 @@ import android.view.MenuItem;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
|
|
||||||
import org.kde.kdeconnect.BackgroundService;
|
import org.kde.kdeconnect.BackgroundService;
|
||||||
import org.kde.kdeconnect.Device;
|
import org.kde.kdeconnect.Device;
|
||||||
import org.kde.kdeconnect.NetworkPackage;
|
import org.kde.kdeconnect.NetworkPackage;
|
||||||
@@ -46,15 +46,14 @@ import java.util.ArrayList;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
|
|
||||||
public class ShareActivity extends ActionBarActivity {
|
public class ShareActivity extends AppCompatActivity {
|
||||||
|
|
||||||
private MenuItem menuProgress;
|
private SwipeRefreshLayout mSwipeRefreshLayout;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
MenuInflater inflater = getMenuInflater();
|
MenuInflater inflater = getMenuInflater();
|
||||||
inflater.inflate(R.menu.refresh, menu);
|
inflater.inflate(R.menu.refresh, menu);
|
||||||
menuProgress = menu.findItem(R.id.menu_progress);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,6 +61,15 @@ public class ShareActivity extends ActionBarActivity {
|
|||||||
public boolean onOptionsItemSelected(final MenuItem item) {
|
public boolean onOptionsItemSelected(final MenuItem item) {
|
||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
case R.id.menu_refresh:
|
case R.id.menu_refresh:
|
||||||
|
updateComputerListAction();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateComputerListAction() {
|
||||||
updateComputerList();
|
updateComputerList();
|
||||||
BackgroundService.RunCommand(ShareActivity.this, new BackgroundService.InstanceCallback() {
|
BackgroundService.RunCommand(ShareActivity.this, new BackgroundService.InstanceCallback() {
|
||||||
@Override
|
@Override
|
||||||
@@ -69,26 +77,20 @@ public class ShareActivity extends ActionBarActivity {
|
|||||||
service.onNetworkChange();
|
service.onNetworkChange();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
item.setVisible(false);
|
|
||||||
menuProgress.setVisible(true);
|
mSwipeRefreshLayout.setRefreshing(true);
|
||||||
new Thread(new Runnable() {
|
new Thread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try { Thread.sleep(1500); } catch (InterruptedException e) { }
|
try { Thread.sleep(1500); } catch (InterruptedException ignored) { }
|
||||||
runOnUiThread(new Runnable() {
|
runOnUiThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
menuProgress.setVisible(false);
|
mSwipeRefreshLayout.setRefreshing(false);
|
||||||
item.setVisible(true);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateComputerList() {
|
private void updateComputerList() {
|
||||||
@@ -179,7 +181,6 @@ public class ShareActivity extends ActionBarActivity {
|
|||||||
device.sendPackage(np);
|
device.sendPackage(np);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -193,13 +194,21 @@ public class ShareActivity extends ActionBarActivity {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_list);
|
setContentView(R.layout.activity_refresh_list);
|
||||||
|
|
||||||
ActionBar actionBar = getSupportActionBar();
|
ActionBar actionBar = getSupportActionBar();
|
||||||
|
mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.refresh_list_layout);
|
||||||
|
mSwipeRefreshLayout.setOnRefreshListener(
|
||||||
|
new SwipeRefreshLayout.OnRefreshListener() {
|
||||||
|
@Override
|
||||||
|
public void onRefresh() {
|
||||||
|
updateComputerListAction();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
if (actionBar != null) {
|
||||||
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM);
|
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM);
|
||||||
|
}
|
||||||
|
|
||||||
setContentView(R.layout.activity_list);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -24,6 +24,7 @@ import android.app.Activity;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.v4.widget.SwipeRefreshLayout;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
@@ -55,10 +56,10 @@ public class PairingFragment extends Fragment implements PairingDeviceItem.Callb
|
|||||||
private static final int RESULT_PAIRING_SUCCESFUL = Activity.RESULT_FIRST_USER;
|
private static final int RESULT_PAIRING_SUCCESFUL = Activity.RESULT_FIRST_USER;
|
||||||
|
|
||||||
private View rootView;
|
private View rootView;
|
||||||
|
private View listRootView;
|
||||||
|
private SwipeRefreshLayout mSwipeRefreshLayout;
|
||||||
private MaterialActivity mActivity;
|
private MaterialActivity mActivity;
|
||||||
|
|
||||||
private MenuItem menuProgress;
|
|
||||||
|
|
||||||
boolean listRefreshCalledThisFrame = false;
|
boolean listRefreshCalledThisFrame = false;
|
||||||
|
|
||||||
TextView headerText;
|
TextView headerText;
|
||||||
@@ -75,12 +76,21 @@ public class PairingFragment extends Fragment implements PairingDeviceItem.Callb
|
|||||||
|
|
||||||
setHasOptionsMenu(true);
|
setHasOptionsMenu(true);
|
||||||
|
|
||||||
rootView = inflater.inflate(R.layout.activity_list, container, false);
|
rootView = inflater.inflate(R.layout.activity_refresh_list, container, false);
|
||||||
|
listRootView = rootView.findViewById(R.id.listView1);
|
||||||
|
mSwipeRefreshLayout = (SwipeRefreshLayout) rootView.findViewById(R.id.refresh_list_layout);
|
||||||
|
mSwipeRefreshLayout.setOnRefreshListener(
|
||||||
|
new SwipeRefreshLayout.OnRefreshListener() {
|
||||||
|
@Override
|
||||||
|
public void onRefresh() {
|
||||||
|
updateComputerListAction();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
headerText = new TextView(inflater.getContext());
|
headerText = new TextView(inflater.getContext());
|
||||||
headerText.setText(getString(R.string.pairing_description));
|
headerText.setText(getString(R.string.pairing_description));
|
||||||
headerText.setPadding(0, (int) (16 * getResources().getDisplayMetrics().density), 0, (int) (12 * getResources().getDisplayMetrics().density));
|
headerText.setPadding(0, (int) (16 * getResources().getDisplayMetrics().density), 0, (int) (12 * getResources().getDisplayMetrics().density));
|
||||||
((ListView) rootView).addHeaderView(headerText);
|
((ListView) listRootView).addHeaderView(headerText);
|
||||||
|
|
||||||
return rootView;
|
return rootView;
|
||||||
}
|
}
|
||||||
@@ -91,7 +101,30 @@ public class PairingFragment extends Fragment implements PairingDeviceItem.Callb
|
|||||||
mActivity = ((MaterialActivity) getActivity());
|
mActivity = ((MaterialActivity) getActivity());
|
||||||
}
|
}
|
||||||
|
|
||||||
void updateComputerList() {
|
private void updateComputerListAction() {
|
||||||
|
updateComputerList();
|
||||||
|
BackgroundService.RunCommand(mActivity, new BackgroundService.InstanceCallback() {
|
||||||
|
@Override
|
||||||
|
public void onServiceStart(BackgroundService service) {
|
||||||
|
service.onNetworkChange();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
mSwipeRefreshLayout.setRefreshing(true);
|
||||||
|
new Thread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try { Thread.sleep(1500); } catch (InterruptedException ignored) { }
|
||||||
|
mActivity.runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
mSwipeRefreshLayout.setRefreshing(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateComputerList() {
|
||||||
BackgroundService.RunCommand(mActivity, new BackgroundService.InstanceCallback() {
|
BackgroundService.RunCommand(mActivity, new BackgroundService.InstanceCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onServiceStart(final BackgroundService service) {
|
public void onServiceStart(final BackgroundService service) {
|
||||||
@@ -227,33 +260,13 @@ public class PairingFragment extends Fragment implements PairingDeviceItem.Callb
|
|||||||
@Override
|
@Override
|
||||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||||
inflater.inflate(R.menu.pairing, menu);
|
inflater.inflate(R.menu.pairing, menu);
|
||||||
menuProgress = menu.findItem(R.id.menu_progress);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(final MenuItem item) {
|
public boolean onOptionsItemSelected(final MenuItem item) {
|
||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
case R.id.menu_refresh:
|
case R.id.menu_refresh:
|
||||||
updateComputerList();
|
updateComputerListAction();
|
||||||
BackgroundService.RunCommand(mActivity, new BackgroundService.InstanceCallback() {
|
|
||||||
@Override
|
|
||||||
public void onServiceStart(BackgroundService service) {
|
|
||||||
service.onNetworkChange();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
menuProgress.setVisible(true);
|
|
||||||
new Thread(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
try { Thread.sleep(1500); } catch (InterruptedException e) { }
|
|
||||||
mActivity.runOnUiThread(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
menuProgress.setVisible(false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}).start();
|
|
||||||
break;
|
break;
|
||||||
case R.id.menu_rename:
|
case R.id.menu_rename:
|
||||||
mActivity.renameDevice();
|
mActivity.renameDevice();
|
||||||
|
Reference in New Issue
Block a user