parent
aead26f02c
commit
efd577b36b
@ -6,7 +6,6 @@ import android.support.annotation.Nullable;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import org.fdroid.fdroid.R;
|
||||
import org.fdroid.fdroid.data.App;
|
||||
import org.fdroid.fdroid.data.Schema;
|
||||
@ -58,4 +57,13 @@ class InstalledAppListAdapter extends RecyclerView.Adapter<InstalledAppListItemC
|
||||
this.cursor = cursor;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public App getItem(int position) {
|
||||
if (cursor == null) {
|
||||
return null;
|
||||
}
|
||||
cursor.moveToPosition(position);
|
||||
return new App(cursor);
|
||||
}
|
||||
}
|
||||
|
@ -22,17 +22,20 @@ package org.fdroid.fdroid.views.installed;
|
||||
import android.database.Cursor;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.LoaderManager;
|
||||
import android.support.v4.app.ShareCompat;
|
||||
import android.support.v4.content.CursorLoader;
|
||||
import android.support.v4.content.Loader;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.fdroid.fdroid.FDroidApp;
|
||||
import org.fdroid.fdroid.R;
|
||||
import org.fdroid.fdroid.data.App;
|
||||
import org.fdroid.fdroid.data.AppProvider;
|
||||
import org.fdroid.fdroid.data.Schema;
|
||||
|
||||
@ -100,4 +103,35 @@ public class InstalledAppsActivity extends AppCompatActivity implements LoaderMa
|
||||
adapter.setApps(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.installed_apps, menu);
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
|
||||
switch (item.getItemId()) {
|
||||
case R.id.menu_share:
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.append("packageName,versionCode,versionName\n");
|
||||
for (int i = 0; i < adapter.getItemCount(); i++) {
|
||||
App app = adapter.getItem(i);
|
||||
if (app != null) {
|
||||
stringBuilder.append(app.packageName).append(',')
|
||||
.append(app.installedVersionCode).append(',')
|
||||
.append(app.installedVersionName).append('\n');
|
||||
}
|
||||
}
|
||||
ShareCompat.IntentBuilder intentBuilder = ShareCompat.IntentBuilder.from(this)
|
||||
.setSubject(getString(R.string.send_installed_apps))
|
||||
.setChooserTitle(R.string.send_installed_apps)
|
||||
.setText(stringBuilder.toString())
|
||||
.setType("text/csv");
|
||||
startActivity(intentBuilder.getIntent());
|
||||
break;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
}
|
||||
|
9
app/src/main/res/menu/installed_apps.xml
Normal file
9
app/src/main/res/menu/installed_apps.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/menu_share"
|
||||
android:icon="@drawable/ic_share_white"
|
||||
android:title="@string/menu_share"
|
||||
app:showAsAction="ifRoom"/>
|
||||
|
||||
</menu>
|
@ -110,6 +110,8 @@ This often occurs with apps installed via Google Play or other sources, if they
|
||||
<string name="app_list__dismiss_downloading_app">Download canceled</string>
|
||||
|
||||
<string name="installed_apps__activity_title">Installed Apps</string>
|
||||
<string name="send_installed_apps">Share installed apps</string>
|
||||
<string name="send_installed_apps_csv">Apps installed by F-Droid as CSV file</string>
|
||||
<string name="installed_app__updates_ignored">Updates ignored</string>
|
||||
<string name="installed_app__updates_ignored_for_suggested_version">Updates ignored for Version %1$s</string>
|
||||
<!-- The inline download button shown in the "Updates" screen only uses an icon and so requires
|
||||
|
Loading…
x
Reference in New Issue
Block a user