mirror of
https://github.com/KDE/kdeconnect-android
synced 2025-08-22 01:51:47 +00:00
Compatibility with android 2.3
This commit is contained in:
parent
4d6c741bf1
commit
3ad2d3a384
@ -37,6 +37,11 @@
|
||||
android:label="MPRIS controls"
|
||||
/>
|
||||
|
||||
<activity
|
||||
android:name="org.kde.connect.CompatSettingsActivity"
|
||||
android:label="KDE Connect Settings"
|
||||
/>
|
||||
|
||||
<activity
|
||||
android:name="org.kde.connect.SettingsActivity"
|
||||
android:label="KDE Connect Settings"
|
||||
|
@ -5,12 +5,12 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Binder;
|
||||
import android.os.Build;
|
||||
import android.os.IBinder;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.util.Log;
|
||||
|
||||
import org.kde.connect.ComputerLinks.BaseComputerLink;
|
||||
import org.kde.connect.LinkProviders.AvahiTcpLinkProvider;
|
||||
import org.kde.connect.LinkProviders.BaseLinkProvider;
|
||||
import org.kde.connect.LinkProviders.BroadcastTcpLinkProvider;
|
||||
import org.kde.connect.PackageInterfaces.BasePackageInterface;
|
||||
@ -68,10 +68,12 @@ public class BackgroundService extends Service {
|
||||
removePackageInterface(BatteryMonitorPackageInterface.class);
|
||||
}
|
||||
|
||||
if (settings.getBoolean("clipboard_interface", true)) {
|
||||
addPackageInterface(ClipboardPackageInterface.class);
|
||||
} else {
|
||||
removePackageInterface(ClipboardPackageInterface.class);
|
||||
if (Build.VERSION.SDK_INT > 10 && Build.VERSION.SDK_INT != 18) {
|
||||
if (settings.getBoolean("clipboard_interface", true)) {
|
||||
addPackageInterface(ClipboardPackageInterface.class);
|
||||
} else {
|
||||
removePackageInterface(ClipboardPackageInterface.class);
|
||||
}
|
||||
}
|
||||
|
||||
if (settings.getBoolean("mpris_interface", true)) {
|
||||
|
@ -0,0 +1,60 @@
|
||||
package org.kde.connect;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.util.Log;
|
||||
|
||||
import org.kde.kdeconnect.R;
|
||||
|
||||
public class CompatSettingsActivity extends PreferenceActivity {
|
||||
|
||||
private SharedPreferences.OnSharedPreferenceChangeListener preferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||
|
||||
Log.e("onSharedPreferenceChanged",key+"->"+sharedPreferences.getBoolean(key,true));
|
||||
BackgroundService.RunCommand(getApplicationContext(), new BackgroundService.InstanceCallback() {
|
||||
@Override
|
||||
public void onServiceStart(BackgroundService service) {
|
||||
service.registerPackageInterfacesFromSettings();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
addPreferencesFromResource(R.xml.settings);
|
||||
if (Build.VERSION.SDK_INT < 11 || Build.VERSION.SDK_INT == 18) {
|
||||
CheckBoxPreference p = (CheckBoxPreference)findPreference("clipboard_interface");
|
||||
p.setEnabled(false);
|
||||
p.setChecked(false);
|
||||
p.setSelectable(false);
|
||||
p.setSummary(R.string.app_not_available);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
getPreferenceManager().getSharedPreferences()
|
||||
.registerOnSharedPreferenceChangeListener(preferenceChangeListener);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
getPreferenceManager().getSharedPreferences()
|
||||
.unregisterOnSharedPreferenceChangeListener(preferenceChangeListener);
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
}
|
@ -2,6 +2,7 @@ package org.kde.connect;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
@ -120,8 +121,13 @@ public class MainActivity extends Activity {
|
||||
public boolean onMenuItemSelected(int featureId, MenuItem item) {
|
||||
switch(item.getItemId()){
|
||||
case R.id.action_settings:
|
||||
Intent intent = new Intent(this,SettingsActivity.class);
|
||||
startActivity(intent);
|
||||
if (Build.VERSION.SDK_INT > 10) {
|
||||
Intent intent = new Intent(this,SettingsActivity.class);
|
||||
startActivity(intent);
|
||||
} else {
|
||||
Intent intent = new Intent(this,CompatSettingsActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
return true;
|
||||
default:
|
||||
return super.onMenuItemSelected(featureId, item);
|
||||
|
@ -0,0 +1,43 @@
|
||||
package org.kde.connect.PackageInterfaces;
|
||||
|
||||
import android.text.ClipboardManager;
|
||||
import android.content.Context;
|
||||
|
||||
import org.kde.connect.Device;
|
||||
import org.kde.connect.NetworkPackage;
|
||||
|
||||
public class CompatClipboardPackageInterface extends BasePackageInterface {
|
||||
|
||||
private Context context;
|
||||
private ClipboardManager cm;
|
||||
|
||||
@Override
|
||||
public boolean onCreate(Context context) {
|
||||
|
||||
this.context = context;
|
||||
|
||||
cm = (ClipboardManager)context.getSystemService(Context.CLIPBOARD_SERVICE);
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPackageReceived(Device d, NetworkPackage np) {
|
||||
if (np.getType().equals(NetworkPackage.PACKAGE_TYPE_CLIPBOARD)) {
|
||||
cm.setText(np.getString("content"));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean onDeviceConnected(Device d) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
@ -84,7 +84,7 @@ public class MprisControlPackageInterface extends BasePackageInterface {
|
||||
|
||||
public void setNowPlayingUpdatedHandler(Handler h) {
|
||||
nowPlayingUpdated = h;
|
||||
if (!nowPlaying.isEmpty()) h.dispatchMessage(new Message());
|
||||
if (nowPlaying.length() > 0) h.dispatchMessage(new Message());
|
||||
requestNowPlaying();
|
||||
}
|
||||
|
||||
@ -94,7 +94,7 @@ public class MprisControlPackageInterface extends BasePackageInterface {
|
||||
|
||||
public void setPlayerListUpdatedHandler(Handler h) {
|
||||
playerListUpdated = h;
|
||||
if (!playerList.isEmpty()) h.dispatchMessage(new Message());
|
||||
if (playerList.size() > 0) h.dispatchMessage(new Message());
|
||||
requestPlayerList();
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,10 @@ package org.kde.connect;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.util.Log;
|
||||
|
||||
@ -30,6 +33,13 @@ public class SettingsFragment extends PreferenceFragment {
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
addPreferencesFromResource(R.xml.settings);
|
||||
if (Build.VERSION.SDK_INT < 11 || Build.VERSION.SDK_INT == 18) {
|
||||
CheckBoxPreference p = (CheckBoxPreference)findPreference("clipboard_interface");
|
||||
p.setEnabled(false);
|
||||
p.setChecked(false);
|
||||
p.setSelectable(false);
|
||||
p.setSummary(R.string.app_not_available);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -14,6 +14,7 @@
|
||||
<string name="pref_enable_mpris_interface_desc">Control audio/video from your phone</string>
|
||||
<string name="pref_enable_ping_interface">Pings</string>
|
||||
<string name="pref_enable_ping_interface_desc">Enable sending and receiving ping notifications</string>
|
||||
<string name="app_not_available">This feature is not available in your Android version</string>
|
||||
|
||||
|
||||
</resources>
|
||||
|
Loading…
x
Reference in New Issue
Block a user