⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imringtonepreference.java

📁 Android平台上即时通讯聊天工具源代码。 支持手机聊天。
💻 JAVA
字号:
/** * Copyright (C) 2008 Esmertec AG. * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy * of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */package com.android.im.app;import com.android.im.service.ImServiceConstants;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.preference.RingtonePreference;import android.provider.Im;import android.text.TextUtils;import android.util.AttributeSet;import android.util.Log;/** * RingtonePreference subclass to save/restore ringtone value from ImProvider. */public class ImRingtonePreference extends RingtonePreference {    private long mProviderId;    public ImRingtonePreference(Context context, AttributeSet attrs) {        super(context, attrs);        Intent intent = ((Activity)context).getIntent();        mProviderId = intent.getLongExtra(ImServiceConstants.EXTRA_INTENT_PROVIDER_ID, -1);        if (mProviderId < 0) {            Log.e(ImApp.LOG_TAG,"ImRingtonePreference intent requires provider id extra");            throw new RuntimeException("ImRingtonePreference must be created with an provider id");        }    }    @Override    protected Uri onRestoreRingtone() {        final Im.ProviderSettings.QueryMap settings = new Im.ProviderSettings.QueryMap(                getContext().getContentResolver(), mProviderId,                 false /* keep updated */, null /* no handler */);                String uri = settings.getRingtoneURI();        if (Log.isLoggable(ImApp.LOG_TAG, Log.VERBOSE)) {            Log.v(ImApp.LOG_TAG, "onRestoreRingtone() finds uri=" + uri + " key=" + getKey());        }                if (TextUtils.isEmpty(uri)) {            return null;        }                Uri result = Uri.parse(uri);                settings.close();                return result;    }    @Override    protected void onSaveRingtone(Uri ringtoneUri) {        final Im.ProviderSettings.QueryMap settings = new Im.ProviderSettings.QueryMap(                getContext().getContentResolver(), mProviderId,                false /* keep updated */, null /* no handler */);                // When ringtoneUri is null, that means 'Silent' was chosen        settings.setRingtoneURI(ringtoneUri == null ? "" : ringtoneUri.toString());        settings.close();    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -