mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-11-11 11:35:07 -05:00
restructering services
This commit is contained in:
parent
26a9a9e423
commit
b63fe462a4
@ -223,23 +223,24 @@
|
|||||||
android:name="org.thialfihar.android.apg.ui.HelpActivity"
|
android:name="org.thialfihar.android.apg.ui.HelpActivity"
|
||||||
android:label="@string/title_help" />
|
android:label="@string/title_help" />
|
||||||
|
|
||||||
<service android:name=".Service" />
|
<service android:name=".service.PassphraseCacheService" />
|
||||||
|
|
||||||
<service android:name=".service.ApgService" />
|
<service android:name=".service.ApgService" />
|
||||||
<!-- <service -->
|
|
||||||
<!-- android:name=".ApgService2" -->
|
|
||||||
<!-- android:enabled="true" -->
|
|
||||||
<!-- android:exported="true" -->
|
|
||||||
<!-- android:permission="org.thialfihar.android.apg.permission.READ_KEY_DETAILS" -->
|
|
||||||
<!-- android:process=":remote" > -->
|
|
||||||
<!-- <intent-filter> -->
|
|
||||||
<!-- <action android:name="org.thialfihar.android.apg.IApgService" /> -->
|
|
||||||
<!-- </intent-filter> -->
|
|
||||||
|
|
||||||
<!-- <meta-data -->
|
<!-- TODO: need to be moved into new service model -->
|
||||||
<!-- android:name="api_version" -->
|
<service
|
||||||
<!-- android:value="2" /> -->
|
android:name=".service.ApgService2"
|
||||||
<!-- </service> -->
|
android:enabled="true"
|
||||||
|
android:exported="true"
|
||||||
|
android:permission="org.thialfihar.android.apg.permission.READ_KEY_DETAILS"
|
||||||
|
android:process=":remote" >
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="org.thialfihar.android.apg.service.IApgService2" />
|
||||||
|
</intent-filter>
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="api_version"
|
||||||
|
android:value="2" />
|
||||||
|
</service>
|
||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name=".provider.DataProvider"
|
android:name=".provider.DataProvider"
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
package org.thialfihar.android.apg.provider;
|
package org.thialfihar.android.apg.provider;
|
||||||
|
|
||||||
import org.thialfihar.android.apg.ApgService2;
|
import org.thialfihar.android.apg.service.ApgService2;
|
||||||
|
|
||||||
import android.content.ContentUris;
|
import android.content.ContentUris;
|
||||||
import android.content.ContentValues;
|
import android.content.ContentValues;
|
||||||
|
@ -14,8 +14,8 @@
|
|||||||
|
|
||||||
package org.thialfihar.android.apg.provider;
|
package org.thialfihar.android.apg.provider;
|
||||||
|
|
||||||
import org.thialfihar.android.apg.ApgService2;
|
|
||||||
import org.thialfihar.android.apg.Constants;
|
import org.thialfihar.android.apg.Constants;
|
||||||
|
import org.thialfihar.android.apg.service.ApgService2;
|
||||||
|
|
||||||
import android.content.ContentProvider;
|
import android.content.ContentProvider;
|
||||||
import android.content.ContentValues;
|
import android.content.ContentValues;
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
package org.thialfihar.android.apg.service;
|
||||||
|
|
||||||
|
public class ApgRemoteService {
|
||||||
|
|
||||||
|
}
|
@ -12,7 +12,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.thialfihar.android.apg;
|
package org.thialfihar.android.apg.service;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
@ -25,8 +25,15 @@ import java.util.HashMap;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
import org.thialfihar.android.apg.IApgService;
|
import org.thialfihar.android.apg.Apg;
|
||||||
|
import org.thialfihar.android.apg.service.IApgService2;
|
||||||
|
import org.thialfihar.android.apg.Id;
|
||||||
|
import org.thialfihar.android.apg.InputData;
|
||||||
|
import org.thialfihar.android.apg.Preferences;
|
||||||
import org.thialfihar.android.apg.R;
|
import org.thialfihar.android.apg.R;
|
||||||
|
import org.thialfihar.android.apg.service.IApgService2.Stub;
|
||||||
|
import org.thialfihar.android.apg.Id.database;
|
||||||
|
import org.thialfihar.android.apg.R.string;
|
||||||
import org.thialfihar.android.apg.provider.KeyRings;
|
import org.thialfihar.android.apg.provider.KeyRings;
|
||||||
import org.thialfihar.android.apg.provider.Keys;
|
import org.thialfihar.android.apg.provider.Keys;
|
||||||
import org.thialfihar.android.apg.provider.UserIds;
|
import org.thialfihar.android.apg.provider.UserIds;
|
||||||
@ -40,7 +47,14 @@ import android.os.Bundle;
|
|||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
public class ApgService2 extends Service {
|
/**
|
||||||
|
* ATTENTION:
|
||||||
|
*
|
||||||
|
* This is the old ApgService used as remote service over aidl interface.
|
||||||
|
* It will be reworked!
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ApgService2 extends PassphraseCacheService {
|
||||||
private final static String TAG = "ApgService";
|
private final static String TAG = "ApgService";
|
||||||
public static final boolean LOCAL_LOGV = true;
|
public static final boolean LOCAL_LOGV = true;
|
||||||
public static final boolean LOCAL_LOGD = true;
|
public static final boolean LOCAL_LOGD = true;
|
||||||
@ -536,7 +550,7 @@ public class ApgService2 extends Service {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private final IApgService.Stub mBinder = new IApgService.Stub() {
|
private final IApgService2.Stub mBinder = new IApgService2.Stub() {
|
||||||
|
|
||||||
public boolean getKeys(Bundle pArgs, Bundle pReturn) {
|
public boolean getKeys(Bundle pArgs, Bundle pReturn) {
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package org.thialfihar.android.apg;
|
package org.thialfihar.android.apg.service;
|
||||||
|
|
||||||
interface IApgService {
|
interface IApgService2 {
|
||||||
|
|
||||||
/* All functions fill the returnVals Bundle with the following keys:
|
/* All functions fill the returnVals Bundle with the following keys:
|
||||||
*
|
*
|
@ -12,14 +12,17 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.thialfihar.android.apg;
|
package org.thialfihar.android.apg.service;
|
||||||
|
|
||||||
|
import org.thialfihar.android.apg.Apg;
|
||||||
|
|
||||||
|
import android.app.Service;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
|
|
||||||
public class Service extends android.app.Service {
|
public class PassphraseCacheService extends Service {
|
||||||
private final IBinder mBinder = new LocalBinder();
|
private final IBinder mBinder = new LocalBinder();
|
||||||
|
|
||||||
public static final String EXTRA_TTL = "ttl";
|
public static final String EXTRA_TTL = "ttl";
|
||||||
@ -80,8 +83,8 @@ public class Service extends android.app.Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public class LocalBinder extends Binder {
|
public class LocalBinder extends Binder {
|
||||||
Service getService() {
|
PassphraseCacheService getService() {
|
||||||
return Service.this;
|
return PassphraseCacheService.this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -28,7 +28,7 @@ import org.thialfihar.android.apg.Id;
|
|||||||
import org.thialfihar.android.apg.PausableThread;
|
import org.thialfihar.android.apg.PausableThread;
|
||||||
import org.thialfihar.android.apg.Preferences;
|
import org.thialfihar.android.apg.Preferences;
|
||||||
import org.thialfihar.android.apg.ProgressDialogUpdater;
|
import org.thialfihar.android.apg.ProgressDialogUpdater;
|
||||||
import org.thialfihar.android.apg.Service;
|
import org.thialfihar.android.apg.service.PassphraseCacheService;
|
||||||
|
|
||||||
import com.actionbarsherlock.app.ActionBar;
|
import com.actionbarsherlock.app.ActionBar;
|
||||||
import com.actionbarsherlock.app.SherlockActivity;
|
import com.actionbarsherlock.app.SherlockActivity;
|
||||||
@ -92,8 +92,8 @@ public class BaseActivity extends SherlockFragmentActivity implements Runnable,
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void startCacheService(Activity activity, Preferences preferences) {
|
public static void startCacheService(Activity activity, Preferences preferences) {
|
||||||
Intent intent = new Intent(activity, Service.class);
|
Intent intent = new Intent(activity, PassphraseCacheService.class);
|
||||||
intent.putExtra(Service.EXTRA_TTL, preferences.getPassPhraseCacheTtl());
|
intent.putExtra(PassphraseCacheService.EXTRA_TTL, preferences.getPassPhraseCacheTtl());
|
||||||
activity.startService(intent);
|
activity.startService(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ public class EditKeyActivity extends SherlockFragmentActivity { // extends BaseA
|
|||||||
Vector<PGPSecretKey> mKeys;
|
Vector<PGPSecretKey> mKeys;
|
||||||
Vector<Integer> mKeysUsages;
|
Vector<Integer> mKeysUsages;
|
||||||
|
|
||||||
// will be set to true to build layout later in handler
|
// will be set to false to build layout later in handler
|
||||||
private boolean mBuildLayout = true;
|
private boolean mBuildLayout = true;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -300,7 +300,6 @@ public class EditKeyActivity extends SherlockFragmentActivity { // extends BaseA
|
|||||||
} else {
|
} else {
|
||||||
mChangePassPhrase.setVisibility(View.VISIBLE);
|
mChangePassPhrase.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
package org.thialfihar.android.apg.util;
|
package org.thialfihar.android.apg.util;
|
||||||
|
|
||||||
import org.thialfihar.android.apg.IApgService;
|
import org.thialfihar.android.apg.service.IApgService2;
|
||||||
import org.thialfihar.android.apg.util.ApgConInterface.OnCallFinishListener;
|
import org.thialfihar.android.apg.util.ApgConInterface.OnCallFinishListener;
|
||||||
|
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
@ -97,13 +97,13 @@ public class ApgCon {
|
|||||||
private final ArrayList<String> mWarningList = new ArrayList<String>();
|
private final ArrayList<String> mWarningList = new ArrayList<String>();
|
||||||
|
|
||||||
/** Remote service for decrypting and encrypting data */
|
/** Remote service for decrypting and encrypting data */
|
||||||
private IApgService mApgService = null;
|
private IApgService2 mApgService = null;
|
||||||
|
|
||||||
/** Set apgService accordingly to connection status */
|
/** Set apgService accordingly to connection status */
|
||||||
private ServiceConnection mApgConnection = new ServiceConnection() {
|
private ServiceConnection mApgConnection = new ServiceConnection() {
|
||||||
public void onServiceConnected(ComponentName className, IBinder service) {
|
public void onServiceConnected(ComponentName className, IBinder service) {
|
||||||
if( LOCAL_LOGD ) Log.d(TAG, "IApgService bound to apgService");
|
if( LOCAL_LOGD ) Log.d(TAG, "IApgService bound to apgService");
|
||||||
mApgService = IApgService.Stub.asInterface(service);
|
mApgService = IApgService2.Stub.asInterface(service);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onServiceDisconnected(ComponentName className) {
|
public void onServiceDisconnected(ComponentName className) {
|
||||||
@ -231,7 +231,7 @@ public class ApgCon {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
mContext.bindService(new Intent(IApgService.class.getName()), mApgConnection, Context.BIND_AUTO_CREATE);
|
mContext.bindService(new Intent(IApgService2.class.getName()), mApgConnection, Context.BIND_AUTO_CREATE);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e(TAG, "could not bind APG service", e);
|
Log.e(TAG, "could not bind APG service", e);
|
||||||
return false;
|
return false;
|
||||||
@ -370,7 +370,7 @@ public class ApgCon {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Boolean success = (Boolean) IApgService.class.getMethod(function, Bundle.class, Bundle.class).invoke(mApgService, pArgs, pReturn);
|
Boolean success = (Boolean) IApgService2.class.getMethod(function, Bundle.class, Bundle.class).invoke(mApgService, pArgs, pReturn);
|
||||||
mErrorList.addAll(pReturn.getStringArrayList(ret.ERRORS.name()));
|
mErrorList.addAll(pReturn.getStringArrayList(ret.ERRORS.name()));
|
||||||
mWarningList.addAll(pReturn.getStringArrayList(ret.WARNINGS.name()));
|
mWarningList.addAll(pReturn.getStringArrayList(ret.WARNINGS.name()));
|
||||||
return success;
|
return success;
|
||||||
|
Loading…
Reference in New Issue
Block a user