1a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)package org.chromium.chrome.browser.profiles; 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import org.chromium.base.CalledByNative; 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/** 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Wrapper that allows passing a Profile reference around in the Java layer. 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)public class Profile { 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) private long mNativeProfileAndroid; 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) private Profile(long nativeProfileAndroid) { 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mNativeProfileAndroid = nativeProfileAndroid; 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) public static Profile getLastUsedProfile() { 214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return (Profile) nativeGetLastUsedProfile(); 224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public Profile getOriginalProfile() { 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return (Profile) nativeGetOriginalProfile(mNativeProfileAndroid); 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public Profile getOffTheRecordProfile() { 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return (Profile) nativeGetOffTheRecordProfile(mNativeProfileAndroid); 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public boolean hasOffTheRecordProfile() { 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return nativeHasOffTheRecordProfile(mNativeProfileAndroid); 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public boolean isOffTheRecord() { 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return nativeIsOffTheRecord(mNativeProfileAndroid); 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) @CalledByNative 41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) private static Profile create(long nativeProfileAndroid) { 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return new Profile(nativeProfileAndroid); 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) @CalledByNative 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private void destroy() { 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mNativeProfileAndroid = 0; 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) @CalledByNative 51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) private long getNativePointer() { 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mNativeProfileAndroid; 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 544e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 554e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) private static native Object nativeGetLastUsedProfile(); 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private native Object nativeGetOriginalProfile( 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci long nativeProfileAndroid); 581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private native Object nativeGetOffTheRecordProfile( 591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci long nativeProfileAndroid); 601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private native boolean nativeHasOffTheRecordProfile( 611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci long nativeProfileAndroid); 621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private native boolean nativeIsOffTheRecord( 631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci long nativeProfileAndroid); 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 65