WearSharedPreferences

Additional

Language
Java
Version
0.0.4 (Oct 21, 2015)
Created
Dec 14, 2014
Updated
Apr 30, 2022 (Retired)
Owner
Takahiro Menju (takahirom)
Contributor
Takahiro Menju (takahirom)
1
Activity
Badge
Generate
Download
Source code

WearSharedPreferences

Android Wear and Phone App sync SharedPreferences

Usage

In Mobile and Wear module build.gradle:
You must be implemented in both the Mobile and Wear

dependencies {
    ...
    compile 'com.kogitune:wear-shared-preferences:0.0.2'
}

Example

Key string definition

In root project build.gralde, you can define strings.xml resource value both of mobile and wear project.

allprojects {
    afterEvaluate {
        project->
        if(!project.hasProperty("android")){
            return;
        }
        project.android.defaultConfig.with {
            resValue "string", "key_preference_photo_url", "key_preference_photo_url"
            resValue "string", "key_preference_photo_title", "key_preference_photo_title"
        }
    }
}

Code

Saving and syncing SharedPreference value.

final WearSharedPreference preference = new WearSharedPreference(context);
preference.put(getString(R.string.key_preference_photo_url), photoUrl);
preference.put(getString(R.string.key_preference_photo_title), title);
preference.sync(new WearSharedPreference.OnSyncListener() {
    @Override
    public void onSuccess() {
    }

    @Override
    public void onFail(Exception e) {
    }
});

Getting SharedPreferences value.

String beforePhotoUrl = new WearSharedPreference(this).get(getString(R.string.key_preference_photo_url), "");

Knowing change event of SharedPreferences value.

If you want to know change event of preferences by wear and phone, You can use 'registerOnPreferenceChangeListener'.

    @Override
    protected void onStart() {
        super.onStart();
        wearPref.registerOnPreferenceChangeListener(new WearSharedPreference.OnPreferenceChangeListener() {
            @Override
            public void onPreferenceChange(WearSharedPreference preference, String key, Bundle bundle) {
                if (!TextUtils.equals(getString(R.string.key_preference_photo_url), key)) {
                    return;
                }
                final String photoUrl = bundle.getString(key);
                // You can use changed photoUrl.
            }
        });
    }

    @Override
    protected void onStop() {
        super.onStop();
        wearPref.unregisterOnPreferenceChangeListener();
    }

Suggestion

WearSharedPreferences can use in WearHttp and simultaneous.

License

This project is released under the Apache License, Version 2.0.