Search in sources :

Example 81 with IBinder

use of android.os.IBinder in project MusicDNA by harjot-oberai.

the class HomeActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    screen_width = display.getWidth();
    screen_height = display.getHeight();
    ratio = (float) screen_height / (float) 1920;
    ratio2 = (float) screen_width / (float) 1080;
    ratio = Math.min(ratio, ratio2);
    setContentView(R.layout.activity_home);
    headSetReceiver = new HeadSetReceiver();
    IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
    registerReceiver(headSetReceiver, filter);
    PackageInfo pInfo;
    try {
        pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
        versionName = pInfo.versionName;
        versionCode = pInfo.versionCode;
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
    mEndButton = new Button(this);
    mEndButton.setBackgroundColor(themeColor);
    mEndButton.setTextColor(Color.WHITE);
    tp = new TextPaint();
    tp.setColor(themeColor);
    tp.setTextSize(65 * ratio);
    tp.setFakeBoldText(true);
    recentsViewAll = (TextView) findViewById(R.id.recents_view_all);
    recentsViewAll.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            showFragment("recent");
        }
    });
    playlistsViewAll = (TextView) findViewById(R.id.playlists_view_all);
    playlistsViewAll.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            showFragment("allPlaylists");
        }
    });
    copyrightText = (TextView) findViewById(R.id.copyright_text);
    copyrightText.setText("Music DNA v" + versionName);
    if (SplashActivity.tf4 != null) {
        try {
            copyrightText.setTypeface(SplashActivity.tf4);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    imgLoader = new ImageLoader(this);
    ctx = this;
    initializeHeaderImages();
    hasSoftNavbar = CommonUtils.hasNavBar(this);
    statusBarHeightinDp = CommonUtils.getStatusBarHeight(this);
    navBarHeightSizeinDp = hasSoftNavbar ? CommonUtils.getNavBarHeight(this) : 0;
    serviceConnection = new ServiceConnection() {

        @Override
        public void onServiceConnected(ComponentName className, IBinder service) {
            // cast the IBinder and get MyService instance
            MediaPlayerService.LocalBinder binder = (MediaPlayerService.LocalBinder) service;
            myService = binder.getService();
            bound = true;
            // register
            myService.setCallbacks(HomeActivity.this);
        }

        @Override
        public void onServiceDisconnected(ComponentName arg0) {
            bound = false;
        }
    };
    minuteList = new ArrayList<>();
    for (int i = 1; i < 25; i++) {
        minuteList.add(String.valueOf(i * 5));
    }
    sleepHandler = new Handler();
    lps = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    lps.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    lps.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    int margin = ((Number) (getResources().getDisplayMetrics().density * 12)).intValue();
    lps.setMargins(margin, margin, margin, navBarHeightSizeinDp + ((Number) (getResources().getDisplayMetrics().density * 5)).intValue());
    fragMan = getSupportFragmentManager();
    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    collapsingToolbar = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
    if (SplashActivity.tf4 != null) {
        collapsingToolbar.setCollapsedTitleTypeface(SplashActivity.tf4);
        collapsingToolbar.setExpandedTitleTypeface(SplashActivity.tf4);
    }
    customLinearGradient = (CustomLinearGradient) findViewById(R.id.custom_linear_gradient);
    customLinearGradient.setAlpha(170);
    customLinearGradient.invalidate();
    drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();
    navigationView = (NavigationView) findViewById(R.id.nav_view);
    if (navigationView != null) {
        navigationView.setNavigationItemSelectedListener(this);
    }
    navigationView.setCheckedItem(R.id.nav_home);
    View header = navigationView.getHeaderView(0);
    navImageView = (ImageView) header.findViewById(R.id.nav_image_view);
    if (navImageView != null) {
        navImageView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                PlayerFragment pFrag = getPlayerFragment();
                if (pFrag != null) {
                    if (pFrag.mMediaPlayer != null && pFrag.mMediaPlayer.isPlaying()) {
                        onBackPressed();
                        isPlayerVisible = true;
                        //                            hideTabs();
                        showPlayer();
                    }
                }
            }
        });
    }
    connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    phoneStateListener = new PhoneStateListener() {

        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            PlayerFragment pFrag = playerFragment;
            if (playerFragment != null) {
                if (state == TelephonyManager.CALL_STATE_RINGING) {
                    //Incoming call: Pause music
                    if (pFrag.mMediaPlayer != null && pFrag.mMediaPlayer.isPlaying()) {
                        wasMediaPlayerPlaying = true;
                        pFrag.togglePlayPause();
                    } else {
                        wasMediaPlayerPlaying = false;
                    }
                } else if (state == TelephonyManager.CALL_STATE_IDLE) {
                    //Not in call: Play music
                    if (pFrag.mMediaPlayer != null && !pFrag.mMediaPlayer.isPlaying() && wasMediaPlayerPlaying) {
                        pFrag.togglePlayPause();
                    }
                } else if (state == TelephonyManager.CALL_STATE_OFFHOOK) {
                    //A call is dialing, active or on hold
                    if (playerFragment.mMediaPlayer != null && pFrag.mMediaPlayer.isPlaying()) {
                        wasMediaPlayerPlaying = true;
                        pFrag.togglePlayPause();
                    } else {
                        wasMediaPlayerPlaying = false;
                    }
                }
            }
            super.onCallStateChanged(state, incomingNumber);
        }
    };
    TelephonyManager mgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
    if (mgr != null) {
        mgr.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
    }
    mPrefs = getPreferences(MODE_PRIVATE);
    prefsEditor = mPrefs.edit();
    gson = new Gson();
    main = this;
    localBanner = (RelativeLayout) findViewById(R.id.localBanner);
    favBanner = (ImageView) findViewById(R.id.favBanner);
    recentBanner = (ImageView) findViewById(R.id.recentBanner);
    folderBanner = (ImageView) findViewById(R.id.folderBanner);
    savedDNABanner = (ImageView) findViewById(R.id.savedDNABanner);
    localBannerPlayAll = (ImageView) findViewById(R.id.local_banner_play_all);
    localBanner.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            showFragment("local");
        }
    });
    favBanner.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            showFragment("favourite");
        }
    });
    recentBanner.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            showFragment("recent");
        }
    });
    folderBanner.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            showFragment("allFolders");
        }
    });
    savedDNABanner.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            showFragment("allSavedDNAs");
        }
    });
    localBannerPlayAll.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            queue.getQueue().clear();
            for (int i = 0; i < localTrackList.size(); i++) {
                UnifiedTrack ut = new UnifiedTrack(true, localTrackList.get(i), null);
                queue.getQueue().add(ut);
            }
            if (queue.getQueue().size() > 0) {
                Random r = new Random();
                int tmp = r.nextInt(queue.getQueue().size());
                queueCurrentIndex = tmp;
                LocalTrack track = localTrackList.get(tmp);
                localSelectedTrack = track;
                streamSelected = false;
                localSelected = true;
                queueCall = false;
                isReloaded = false;
                onLocalTrackSelected(-1);
            }
        }
    });
    bottomToolbar = (FrameLayout) findViewById(R.id.bottomMargin);
    spHome = (Toolbar) findViewById(R.id.smallPlayer_home);
    playerControllerHome = (ImageView) findViewById(R.id.player_control_sp_home);
    spImgHome = (CircleImageView) findViewById(R.id.selected_track_image_sp_home);
    spTitleHome = (TextView) findViewById(R.id.selected_track_title_sp_home);
    playerControllerHome.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (queue != null && queue.getQueue().size() > 0) {
                onQueueItemClicked(queueCurrentIndex);
                bottomToolbar.setVisibility(View.INVISIBLE);
            }
        }
    });
    playerControllerHome.setImageResource(R.drawable.ic_play_arrow_white_48dp);
    spHome.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (queue != null && queue.getQueue().size() > 0) {
                onQueueItemClicked(queueCurrentIndex);
                bottomToolbar.setVisibility(View.INVISIBLE);
            }
        }
    });
    localRecyclerContainer = (RelativeLayout) findViewById(R.id.localRecyclerContainer);
    recentsRecyclerContainer = (RelativeLayout) findViewById(R.id.recentsRecyclerContainer);
    streamRecyclerContainer = (RelativeLayout) findViewById(R.id.streamRecyclerContainer);
    playlistRecyclerContainer = (RelativeLayout) findViewById(R.id.playlistRecyclerContainer);
    if (SplashActivity.tf4 != null) {
        try {
            ((TextView) findViewById(R.id.playListRecyclerLabel)).setTypeface(SplashActivity.tf4);
            ((TextView) findViewById(R.id.recentsRecyclerLabel)).setTypeface(SplashActivity.tf4);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    localNothingText = (TextView) findViewById(R.id.localNothingText);
    streamNothingText = (TextView) findViewById(R.id.streamNothingText);
    recentsNothingText = (TextView) findViewById(R.id.recentsNothingText);
    playlistNothingText = (TextView) findViewById(R.id.playlistNothingText);
    localViewAll = (TextView) findViewById(R.id.localViewAll);
    localViewAll.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            showFragment("local");
        }
    });
    streamViewAll = (TextView) findViewById(R.id.streamViewAll);
    streamViewAll.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            showFragment("stream");
        }
    });
    progress = new Dialog(ctx);
    progress.setCancelable(false);
    progress.requestWindowFeature(Window.FEATURE_NO_TITLE);
    progress.setContentView(R.layout.custom_progress_dialog);
    progress.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    progress.show();
    showCase = new ShowcaseView.Builder(this).blockAllTouches().singleShot(0).setStyle(R.style.CustomShowcaseTheme).useDecorViewAsParent().replaceEndButton(mEndButton).setContentTitlePaint(tp).setTarget(new ViewTarget(R.id.recentsRecyclerLabel, this)).setContentTitle("Recents and Playlists").setContentText("Here all you recent songs and playlists will be listed." + "Long press the cards or playlists for more options \n" + "\n" + "(Press Next to continue / Press back to Hide)").build();
    showCase.setButtonText("Next");
    showCase.setButtonPosition(lps);
    showCase.overrideButtonClick(new View.OnClickListener() {

        int count1 = 0;

        @Override
        public void onClick(View v) {
            count1++;
            switch(count1) {
                case 1:
                    showCase.setTarget(new ViewTarget(R.id.local_banner_alt_showcase, (Activity) ctx));
                    showCase.setContentTitle("Local Songs");
                    showCase.setContentText("See all songs available locally, classified on basis of Artist and Album");
                    showCase.setButtonPosition(lps);
                    showCase.setButtonText("Next");
                    break;
                case 2:
                    showCase.setTarget(new ViewTarget(searchView.getId(), (Activity) ctx));
                    showCase.setContentTitle("Search");
                    showCase.setContentText("Search for songs from local library and SoundCloud™");
                    showCase.setButtonPosition(lps);
                    showCase.setButtonText("Done");
                    break;
                case 3:
                    showCase.hide();
                    break;
            }
        }
    });
    new loadSavedData().execute();
}
Also used : ServiceConnection(android.content.ServiceConnection) ActionBarDrawerToggle(android.support.v7.app.ActionBarDrawerToggle) Gson(com.google.gson.Gson) ViewTarget(com.github.amlcurran.showcaseview.targets.ViewTarget) WindowManager(android.view.WindowManager) IBinder(android.os.IBinder) PackageManager(android.content.pm.PackageManager) Random(java.util.Random) Button(android.widget.Button) TelephonyManager(android.telephony.TelephonyManager) Dialog(android.app.Dialog) CustomLocalBottomSheetDialog(com.sdsmdg.harjot.MusicDNA.custombottomsheets.CustomLocalBottomSheetDialog) CustomGeneralBottomSheetDialog(com.sdsmdg.harjot.MusicDNA.custombottomsheets.CustomGeneralBottomSheetDialog) PhoneStateListener(android.telephony.PhoneStateListener) HeadSetReceiver(com.sdsmdg.harjot.MusicDNA.headsethandler.HeadSetReceiver) ComponentName(android.content.ComponentName) TextView(android.widget.TextView) MediaPlayerService(com.sdsmdg.harjot.MusicDNA.notificationmanager.MediaPlayerService) PlayerFragment(com.sdsmdg.harjot.MusicDNA.fragments.PlayerFragment.PlayerFragment) IntentFilter(android.content.IntentFilter) PackageInfo(android.content.pm.PackageInfo) Handler(android.os.Handler) LocalTrack(com.sdsmdg.harjot.MusicDNA.models.LocalTrack) ImageView(android.widget.ImageView) VisualizerView(com.sdsmdg.harjot.MusicDNA.visualizers.VisualizerView) RecyclerView(android.support.v7.widget.RecyclerView) NavigationView(android.support.design.widget.NavigationView) SearchView(android.support.v7.widget.SearchView) CircleImageView(de.hdodenhof.circleimageview.CircleImageView) ShowcaseView(com.github.amlcurran.showcaseview.ShowcaseView) View(android.view.View) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) WheelView(com.lantouzi.wheelview.WheelView) ListView(android.widget.ListView) FileNotFoundException(java.io.FileNotFoundException) TextPaint(android.text.TextPaint) TextPaint(android.text.TextPaint) ColorDrawable(android.graphics.drawable.ColorDrawable) UnifiedTrack(com.sdsmdg.harjot.MusicDNA.models.UnifiedTrack) RelativeLayout(android.widget.RelativeLayout) ImageLoader(com.sdsmdg.harjot.MusicDNA.imageloader.ImageLoader) ShowcaseView(com.github.amlcurran.showcaseview.ShowcaseView) Display(android.view.Display)

Example 82 with IBinder

use of android.os.IBinder in project cardslib by gabrielemariotti.

the class IabHelper method startSetup.

/**
     * Starts the setup process. This will start up the setup process asynchronously.
     * You will be notified through the listener when the setup process is complete.
     * This method is safe to call from a UI thread.
     *
     * @param listener The listener to notify when the setup process is complete.
     */
public void startSetup(final OnIabSetupFinishedListener listener) {
    // If already set up, can't do it again.
    checkNotDisposed();
    if (mSetupDone)
        throw new IllegalStateException("IAB helper is already set up.");
    // Connection to IAB service
    logDebug("Starting in-app billing setup.");
    mServiceConn = new ServiceConnection() {

        @Override
        public void onServiceDisconnected(ComponentName name) {
            logDebug("Billing service disconnected.");
            mService = null;
        }

        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            if (mDisposed)
                return;
            logDebug("Billing service connected.");
            mService = IInAppBillingService.Stub.asInterface(service);
            String packageName = mContext.getPackageName();
            try {
                logDebug("Checking for in-app billing 3 support.");
                // check for in-app billing v3 support
                int response = mService.isBillingSupported(3, packageName, ITEM_TYPE_INAPP);
                if (response != BILLING_RESPONSE_RESULT_OK) {
                    if (listener != null)
                        listener.onIabSetupFinished(new IabResult(response, "Error checking for billing v3 support."));
                    // if in-app purchases aren't supported, neither are subscriptions.
                    mSubscriptionsSupported = false;
                    return;
                }
                logDebug("In-app billing version 3 supported for " + packageName);
                // check for v3 subscriptions support
                response = mService.isBillingSupported(3, packageName, ITEM_TYPE_SUBS);
                if (response == BILLING_RESPONSE_RESULT_OK) {
                    logDebug("Subscriptions AVAILABLE.");
                    mSubscriptionsSupported = true;
                } else {
                    logDebug("Subscriptions NOT AVAILABLE. Response: " + response);
                }
                mSetupDone = true;
            } catch (RemoteException e) {
                if (listener != null) {
                    listener.onIabSetupFinished(new IabResult(IABHELPER_REMOTE_EXCEPTION, "RemoteException while setting up in-app billing."));
                }
                e.printStackTrace();
                return;
            }
            if (listener != null) {
                listener.onIabSetupFinished(new IabResult(BILLING_RESPONSE_RESULT_OK, "Setup successful."));
            }
        }
    };
    Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");
    serviceIntent.setPackage("com.android.vending");
    List<ResolveInfo> packages = mContext.getPackageManager().queryIntentServices(serviceIntent, 0);
    if (mContext != null && packages != null && !packages.isEmpty()) {
        // service available to handle that Intent
        mContext.bindService(serviceIntent, mServiceConn, Context.BIND_AUTO_CREATE);
        mServiceBound = true;
    } else {
        // no service available to handle that Intent
        if (listener != null) {
            listener.onIabSetupFinished(new IabResult(BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE, "Billing service unavailable on device."));
        }
    }
}
Also used : ResolveInfo(android.content.pm.ResolveInfo) ServiceConnection(android.content.ServiceConnection) IBinder(android.os.IBinder) ComponentName(android.content.ComponentName) Intent(android.content.Intent) PendingIntent(android.app.PendingIntent) RemoteException(android.os.RemoteException)

Example 83 with IBinder

use of android.os.IBinder in project XobotOS by xamarin.

the class AppWidgetManager method getInstance.

/**
     * Get the AppWidgetManager instance to use for the supplied {@link android.content.Context
     * Context} object.
     */
public static AppWidgetManager getInstance(Context context) {
    synchronized (sManagerCache) {
        if (sService == null) {
            IBinder b = ServiceManager.getService(Context.APPWIDGET_SERVICE);
            sService = IAppWidgetService.Stub.asInterface(b);
        }
        WeakReference<AppWidgetManager> ref = sManagerCache.get(context);
        AppWidgetManager result = null;
        if (ref != null) {
            result = ref.get();
        }
        if (result == null) {
            result = new AppWidgetManager(context);
            sManagerCache.put(context, new WeakReference<AppWidgetManager>(result));
        }
        return result;
    }
}
Also used : IBinder(android.os.IBinder)

Example 84 with IBinder

use of android.os.IBinder in project XobotOS by xamarin.

the class NotificationManager method getService.

/** @hide */
public static INotificationManager getService() {
    if (sService != null) {
        return sService;
    }
    IBinder b = ServiceManager.getService("notification");
    sService = INotificationManager.Stub.asInterface(b);
    return sService;
}
Also used : IBinder(android.os.IBinder)

Example 85 with IBinder

use of android.os.IBinder in project XobotOS by xamarin.

the class View method startDrag.

/**
     * Starts a drag and drop operation. When your application calls this method, it passes a
     * {@link android.view.View.DragShadowBuilder} object to the system. The
     * system calls this object's {@link DragShadowBuilder#onProvideShadowMetrics(Point, Point)}
     * to get metrics for the drag shadow, and then calls the object's
     * {@link DragShadowBuilder#onDrawShadow(Canvas)} to draw the drag shadow itself.
     * <p>
     *  Once the system has the drag shadow, it begins the drag and drop operation by sending
     *  drag events to all the View objects in your application that are currently visible. It does
     *  this either by calling the View object's drag listener (an implementation of
     *  {@link android.view.View.OnDragListener#onDrag(View,DragEvent) onDrag()} or by calling the
     *  View object's {@link android.view.View#onDragEvent(DragEvent) onDragEvent()} method.
     *  Both are passed a {@link android.view.DragEvent} object that has a
     *  {@link android.view.DragEvent#getAction()} value of
     *  {@link android.view.DragEvent#ACTION_DRAG_STARTED}.
     * </p>
     * <p>
     * Your application can invoke startDrag() on any attached View object. The View object does not
     * need to be the one used in {@link android.view.View.DragShadowBuilder}, nor does it need to
     * be related to the View the user selected for dragging.
     * </p>
     * @param data A {@link android.content.ClipData} object pointing to the data to be
     * transferred by the drag and drop operation.
     * @param shadowBuilder A {@link android.view.View.DragShadowBuilder} object for building the
     * drag shadow.
     * @param myLocalState An {@link java.lang.Object} containing local data about the drag and
     * drop operation. This Object is put into every DragEvent object sent by the system during the
     * current drag.
     * <p>
     * myLocalState is a lightweight mechanism for the sending information from the dragged View
     * to the target Views. For example, it can contain flags that differentiate between a
     * a copy operation and a move operation.
     * </p>
     * @param flags Flags that control the drag and drop operation. No flags are currently defined,
     * so the parameter should be set to 0.
     * @return {@code true} if the method completes successfully, or
     * {@code false} if it fails anywhere. Returning {@code false} means the system was unable to
     * do a drag, and so no drag operation is in progress.
     */
public final boolean startDrag(ClipData data, DragShadowBuilder shadowBuilder, Object myLocalState, int flags) {
    if (ViewDebug.DEBUG_DRAG) {
        Log.d(VIEW_LOG_TAG, "startDrag: data=" + data + " flags=" + flags);
    }
    boolean okay = false;
    Point shadowSize = new Point();
    Point shadowTouchPoint = new Point();
    shadowBuilder.onProvideShadowMetrics(shadowSize, shadowTouchPoint);
    if ((shadowSize.x < 0) || (shadowSize.y < 0) || (shadowTouchPoint.x < 0) || (shadowTouchPoint.y < 0)) {
        throw new IllegalStateException("Drag shadow dimensions must not be negative");
    }
    if (ViewDebug.DEBUG_DRAG) {
        Log.d(VIEW_LOG_TAG, "drag shadow: width=" + shadowSize.x + " height=" + shadowSize.y + " shadowX=" + shadowTouchPoint.x + " shadowY=" + shadowTouchPoint.y);
    }
    Surface surface = new Surface();
    try {
        IBinder token = mAttachInfo.mSession.prepareDrag(mAttachInfo.mWindow, flags, shadowSize.x, shadowSize.y, surface);
        if (ViewDebug.DEBUG_DRAG)
            Log.d(VIEW_LOG_TAG, "prepareDrag returned token=" + token + " surface=" + surface);
        if (token != null) {
            Canvas canvas = surface.lockCanvas(null);
            try {
                canvas.drawColor(0, PorterDuff.Mode.CLEAR);
                shadowBuilder.onDrawShadow(canvas);
            } finally {
                surface.unlockCanvasAndPost(canvas);
            }
            final ViewRootImpl root = getViewRootImpl();
            // Cache the local state object for delivery with DragEvents
            root.setLocalDragState(myLocalState);
            // repurpose 'shadowSize' for the last touch point
            root.getLastTouchPoint(shadowSize);
            okay = mAttachInfo.mSession.performDrag(mAttachInfo.mWindow, token, shadowSize.x, shadowSize.y, shadowTouchPoint.x, shadowTouchPoint.y, data);
            if (ViewDebug.DEBUG_DRAG)
                Log.d(VIEW_LOG_TAG, "performDrag returned " + okay);
            // Off and running!  Release our local surface instance; the drag
            // shadow surface is now managed by the system process.
            surface.release();
        }
    } catch (Exception e) {
        Log.e(VIEW_LOG_TAG, "Unable to initiate drag", e);
        surface.destroy();
    }
    return okay;
}
Also used : IBinder(android.os.IBinder) Canvas(android.graphics.Canvas) Point(android.graphics.Point) InvocationTargetException(java.lang.reflect.InvocationTargetException) RemoteException(android.os.RemoteException)

Aggregations

IBinder (android.os.IBinder)991 RemoteException (android.os.RemoteException)494 Intent (android.content.Intent)141 ComponentName (android.content.ComponentName)128 ServiceConnection (android.content.ServiceConnection)94 Parcel (android.os.Parcel)91 Point (android.graphics.Point)67 PendingIntent (android.app.PendingIntent)60 IOException (java.io.IOException)53 UserHandle (android.os.UserHandle)50 Bundle (android.os.Bundle)40 Binder (android.os.Binder)37 Message (android.os.Message)37 NameNotFoundException (android.content.pm.PackageManager.NameNotFoundException)34 AndroidRuntimeException (android.util.AndroidRuntimeException)33 Handler (android.os.Handler)31 ArrayList (java.util.ArrayList)27 IContentProvider (android.content.IContentProvider)25 TransactionTooLargeException (android.os.TransactionTooLargeException)25 OperationResult (android.security.keymaster.OperationResult)25